最も必要とされている時に、信頼できるWordPressチュートリアルを。
WordPress入門ガイド
WPBカップ
2500万人以上
当社のプラグインを使用しているウェブサイト
16+
WordPress経験年数
3000+
専門家によるWordPressチュートリアル

WordPressクッキーの設定、取得、削除方法(プロのように)

かつて、私たちのサイトの1つでユーザーログインとショッピングカートが失敗し続けるという、フラストレーションのたまる問題に直面しました。隠れた原因は、サイトがクッキーを管理する方法における単純な見落としでした。

クッキーのような技術的な設定を扱うことは、初心者にとっては intimidating に感じられるかもしれません。しかし、これを正しく設定することが、高速でユーザーフレンドリーなウェブサイトの秘訣です。

私たち自身のミスを修正した後、誰でも従える簡単なシステムを開発しました。クッキーを安全に処理するために使用している正確な方法を順を追って説明します。

このガイドでは、WordPressでクッキーを簡単に設定、取得、削除する方法を説明します。自信を持ってサイトのデータを管理できるように、正確な手順を見ていきましょう。

WordPressクッキーの設定、取得、削除方法(プロのように)

この記事で取り上げるトピックは次のとおりです。

注意: このチュートリアルにはカスタムコードが含まれますが、心配しないでください。各ステップを順を追って説明します。PHPの専門家でなくても理解できるように、コードスニペットプラグインの使用をお勧めします。

Cookieとは何ですか?

Cookieは、ユーザーがウェブサイトを訪問した際に、ユーザーのブラウザに作成・保存されるプレーンテキストファイルです。Cookieを使用すると、WordPressウェブサイトにさまざまな機能を追加できます。

クッキーの一般的な使用例をいくつかご紹介します。

  • ユーザーのログイン情報を保存および管理する
  • ユーザーの訪問中に一時的なセッション情報を保存する
  • eコマースストアへのユーザーの訪問中にカートアイテムを記憶する
  • パーソナライズされたユーザーエクスペリエンスを提供するために、サイト上のユーザーアクティビティを追跡する

Cookieはウェブサイト所有者にとって強力なツールですが、プライバシーに関する懸念を引き起こす可能性があります。現代のマーケティング手法、例えばEメールマーケティング、グロースハック、デジタル広告などは、Cookieをトラッキングビーコンとして使用し、複数のウェブサイトを横断してユーザーのアクティビティを収集・共有することがよくあります。

クッキーはユーザーの行動を追跡できるため、多くの国では厳格なプライバシー法があります。たとえば、GDPRのような法律では、訪問者のデバイスにほとんどの種類のクッキーを保存する前に、許可を求める必要があります。

WPConsentを使用すると、WordPressサイトに完全に準拠したCookie同意システムを簡単に導入できます。このプラグインは、訪問者が許可を与えるまでトラッキングスクリプトを積極的にブロックすることで、基本的な通知を超えた機能を提供します。

WPConsentで作成されたクッキーポップアップ

WPConsentでクッキー同意バナーを作成するのは簡単です。事前に作成されたテンプレートを選択し、サイトに合わせてデザインをカスタマイズして、プラグインに訪問者の同意管理をすべて自動的に処理させることができます。

この方法は、GDPR/CCPA向けCookieポップアップの追加方法に関するガイドで、ご自身のサイトでどのように行うかを学ぶことができます。

通常のWordPressウェブサイトでのクッキーの使用方法

デフォルトでは、WordPressはCookieを使用して、ログイン中のユーザーセッションと認証を管理し、コメントフォームに入力した場合にユーザーの名前とメールアドレスを記憶します。

しかし、ウェブサイト上の多くのWordPressプラグインも、独自のCookieを設定する場合があります。

例えば、OptinMonsterは、新規訪問者とリピーターに異なるEメールオプトインフォームを表示することを可能にし、それはCookieを使用して行われます。

ウェブサイトでGoogle AnalyticsGoogle AdSenseのような外部ウェブサービスを使用している場合、それらもウェブサイトにサードパーティCookieを設定する可能性があります。

ブラウザの設定で、すべてのウェブサイトのCookieを表示できます。たとえば、Google Chromeでは、まず設定ページを開く必要があります。

右上の「3つの点」アイコンをクリックして「設定」を選択するか、アドレスバーにchrome://settingsと入力することで、これを行うことができます。

Google Chromeのサイト設定

設定ページで、左側のメニューにある「プライバシーとセキュリティ」をクリックします。

次に、「プライバシーとセキュリティ」の下にある「サードパーティCookie」を探してクリックします。

Chrome設定のCookieセクション

これはクッキー設定ページを開きます。

次に、「すべてのサイトデータと権限を表示」オプションをクリックする必要があります。

すべてのCookieとサイトデータを表示

次のページには、訪問したすべてのウェブサイトがブラウザに保存しているクッキーとサイトデータのリストが表示されます。

検索ボックスにウェブサイトのアドレスを入力すると、そのウェブサイトによって保存されているデータが表示されます。

サイトクッキーを表示

個々のアイテムをクリックすると、個々のクッキーとその内容に関する詳細が表示されます。

このチュートリアルに従うには、テーマのfunctions.phpファイルにコードを追加するか、WPCodeのようなコードスニペットプラグインを使用する必要があります。これを行ったことがない場合は、WordPressでコードスニペットをコピー&ペーストする方法に関するガイドをご覧ください。

まず、PHPsetcookie()関数を使用します。この関数は次のパラメータを受け取ります:

  • クッキー名
  • Cookieの値
  • Expire – オプション。クッキーがアクティブでいられる期間を設定し、それを過ぎると自己削除されます。
  • Path – オプション。デフォルトではサイトのルートパスが使用されます。
  • Domain – オプション。デフォルトではウェブサイトのメインドメイン名が使用されます。
  • Secure – オプション。trueに設定すると、ウェブサイトにアクティブなSSL証明書(HTTPS)がある場合にのみクッキーが機能するようになります。
  • httponly – オプション。trueに設定すると、クッキーはJavaScriptから隠され、悪意のあるスクリプトからサイトを保護するのに役立ちます。

さて、WordPress サイトにコードスニペットを追加しましょう。このコードは、ユーザーがあなたのウェブサイトを訪問した正確なタイムスタンプを Cookie に保存します:

function wpb_cookies_tutorial1() {
  $visit_time = date('F j, Y  g:i a');
  if(!isset($_COOKIE['wpb_visit_time'])) {
    // set a cookie for 1 year
    setcookie('wpb_visit_time', $visit_time, time()+31556926);
  }
}
add_action('init', 'wpb_cookies_tutorial1');

このコードでは、time() + 31556926を使用して有効期限を設定しています。time()関数は現在の正確な瞬間を表し、大きな数値は1年間の正確な秒数(60 x 60 x 24 x 365.25)です。

これで、ウェブサイトにアクセスしてブラウザのクッキーを確認できます。wpb_visit_timeという名前のクッキーが見つかるはずです。

ユーザーのブラウザに1年間保存されるこのCookieを作成したので、この情報をウェブサイトでどのように使用できるかを見てみましょう。

クッキーの名前がわかっている場合は、PHPのどこからでも$_COOKIE[]変数を使用して簡単に呼び出すことができます。クッキーはHTTPヘッダーを介して送信されるため、ページにHTMLがロードされる前にクッキーを設定するにはinitフックを使用する必要があります。

クッキーを設定するだけでなく、ウェブサイトにメッセージを表示するショートコードを作成するコードを追加しましょう。

// 1. Set the cookie during WordPress init
function wpb_set_visit_cookie() {
    if ( ! isset( $_COOKIE['wpb_visit_time'] ) ) {
        $visit_time = date( 'F j, Y g:i a' );
        // Set a cookie for 1 year
        setcookie( 'wpb_visit_time', $visit_time, time() + 31556926 );
    }
}
add_action( 'init', 'wpb_set_visit_cookie' );

// 2. Create the shortcode to display the message
function wpb_visitor_greeting_shortcode() {
    if ( isset( $_COOKIE['wpb_visit_time'] ) ) {
        // Always escape cookie data for security!
        $lastvisit = esc_html( $_COOKIE['wpb_visit_time'] );
        $message = 'You last visited our website on ' . $lastvisit . '. Check out whats new!';
    } else {
        $message = 'New here? Check out these resources...';
    }
    return $message;
}
add_shortcode( 'greet_me', 'wpb_visitor_greeting_shortcode' );

コード内のコメントで、各部分が何をするかを示しています。このコードは、Cookieに保存された情報を使用し、ショートコードを使用して出力します。

これで、ウェブサイトのどこにでもショートコード [greet_me] を追加でき、ユーザーが最後に訪問したときに表示されます。

プロのヒント: ショートコードで時間が更新されないように見える場合は、WordPressのキャッシュプラグインが古い静的バージョンのページをキャッシュしている可能性があります。ライブで更新を確認するには、このショートコードが含まれるページをキャッシュ設定から除外する必要があるかもしれません。

コードを自由に修正して、ウェブサイトでより役立つものにしてください。例えば、リピーターには最近の投稿を、新規ユーザーには人気の投稿を表示することができます。

これまで、クッキーの設定方法とその後のウェブサイトでの使用方法を学びました。次に、クッキーの削除方法を見てみましょう。

ユーザーのブラウザからクッキーを削除するには、setcookie()関数を使用して有効期限を過去に設定する必要があります。コードに次の行を追加できます。

setcookie( 'wpb_visit_time', '', time() - 3600 );

削除しようとしているクッキーの名前にwpb_visit_timeを置き換えるのを忘れないでください。

上記と同じサンプルコードを使用して、このコードを文脈に当てはめてみましょう。今回は、Cookie を削除して新しい情報で再度設定します:

// 1. Manage the cookie (Read old, Delete, Set new)
function wpb_update_visit_cookie() {
    $current_time = date( 'F j, Y g:i a' );

    // Check if cookie is already set
    if ( isset( $_COOKIE['wpb_visit_time'] ) ) {
        // Save the old time so our shortcode can still display it on this page load
        $GLOBALS['last_visit'] = $_COOKIE['wpb_visit_time'];

        // Delete the old browser cookie by setting the time to the past
        setcookie( 'wpb_visit_time', '', time() - 3600 );
    }

    // Set the cookie again with the newly updated time
    setcookie( 'wpb_visit_time', $current_time, time() + 31556926 );
}

add_action( 'init', 'wpb_update_visit_cookie' );

// 2. Create the shortcode to display the message
function wpb_greeting_shortcode() {
    // Look for the saved global variable first
    if ( isset( $GLOBALS['last_visit'] ) ) {
        $lastvisit = esc_html( $GLOBALS['last_visit'] );
        $message = 'You last visited our website on ' . $lastvisit . '. Check out whats new!';
    } else {
        $message = 'New here? Check out these resources...';
    }
    return $message;
}
add_shortcode( 'greet_me', 'wpb_greeting_shortcode' );

ご覧のとおり、このコードはタイマーを過去に設定することで、作成した特定のブラウザクッキーを削除します。

心配しないでください。これはサイト固有のクッキーのみを削除し、ユーザーのブラウザキャッシュ全体や履歴をクリアするわけではありません。その後、新しく更新された時間情報でクッキーを再度設定します。

ヒント: Cookie を削除しようとしても機能しない場合は、パスとドメインのパラメータが、Cookie を最初に作成したときと同じであることを確認してください。

WordPressのCookieに関するよくある質問

WordPressでCookieを設定、取得、削除する際の最も一般的な質問に対する回答を以下に示します。

1.ウェブサイトのCookieとは何ですか?

ウェブサイトのCookieは、訪問者のウェブブラウザに保存される小さなテキストファイルです。特定のウェブサイトに関する情報を保存および取得するために使用され、ユーザーのログイン状態を記憶したり、ショッピングカートに商品を入れたり、エクスペリエンスをパーソナライズしたりします。

2. WordPressのCookieはサイトにとって悪いですか?

いいえ、Cookieは本質的に悪いものではありません。ユーザーログインの管理やコメント投稿者の情報の記憶など、多くのコアWordPress機能に不可欠です。しかし、ユーザーアクティビティを追跡できるため、プライバシーに関する懸念を引き起こし、それがGDPRのような規制が存在する理由です。

3.WordPressでCookie同意通知を表示する必要がありますか?

ウェブサイトに、欧州連合のGDPRのようなプライバシー法を持つ国の訪問者がいる場合、ほとんどの種類のCookieを保存する前にユーザーの同意を得る必要があります。WPConsentのようなプラグインを使用することは、コンプライアンスを確保する簡単な方法です。

4.私のウェブサイトが使用しているCookieを確認するにはどうすればよいですか?

ウェブサイトが使用するすべてのCookieは、ブラウザの開発者ツールまたは設定で直接表示できます。たとえば、Google Chromeでは、設定 » プライバシーとセキュリティ » サードパーティCookieに移動し、「すべてのサイトデータと権限を表示」をクリックすると、訪問したサイトのCookieを検査できます。

WordPressでクッキーを使用するための追加リソース

この記事が、WordPressのクッキーを簡単に設定、取得、削除する方法を学ぶのに役立ったことを願っています。WordPressでクッキーを使用することに関連する他のガイドも参照することをお勧めします。

この記事が気に入った場合は、WordPressのビデオチュートリアルのために、YouTubeチャンネルを購読してください。また、TwitterFacebookでも私たちを見つけることができます。

開示: 当社のコンテンツは読者によってサポートされています。これは、一部のリンクをクリックすると、手数料が発生する可能性があることを意味します。WPBeginnerがどのように資金調達されているか、なぜそれが重要なのか、そしてどのように私たちをサポートできるかを確認してください。こちらが当社の編集プロセスです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

20 CommentsLeave a Reply

  1. こんにちは、ファイルをテーマフォルダのfunctions.ファイルに入れて保存するかどうか理解できませんでした

  2. 非常に役立ち、情報量の多い記事でした。ありがとうございます。
    unset を使用しただけではクッキーが削除されないようだったので、クッキーの有効期限を過去の日付に設定する必要がありました。例:
    setcookie(‘wpb_visit_time’, $visit_time, time()-1);

    • 同じ問題に遭遇する可能性のある方のために、共有していただきありがとうございます。

      管理者

  3. 問題は、このようなコードを実装すると、WordPressで警告エラーが発生し、クッキーが失敗することです。

    警告: ヘッダー情報を変更できません – ヘッダーは既に送信されています (出力が開始されました

    どうすればそれを回避できますか?

  4. ユーザーが一度だけページを訪問するようにクッキーを使用するにはどうすればよいですか?

  5. 素晴らしいチュートリアルをありがとうございます!

    小さな間違い:最初のコードスニペットの$wpb_visit_timeは「wpb_visit_time」であるべきです

  6. こんにちは、最初の例のコードにエラーがあるようです。

    function wpb_cookies_tutorial1() { $visit_time = date(‘F j, Y g:i a’); if(!isset($_COOKIE[$wpb_visit_time])) { // set a cookie for 1 year setcookie(‘wpb_visit_time’, $current_time, time()+31556926); } }

    変数は$visit_timeとして指定していますが、setcookie関数では$current_timeを呼び出しています。

    ガイドをありがとうございます。非常に役立ちます。

  7. あなたの記事はとても参考になりますが、コーディングをよく理解する必要があるので、お伺いしたいのですが、
    ここに表示されているコードはすべてコピー&ペーストする必要がありますか?
    wbp_visit_time、wbp_cookies_tutorial は自分のサイトの名前に置き換えるのですか?

  8. ウェブサイトを検索エンジンで検索しようとすると、常に「ウェブサイトは信頼できません」と表示される理由がわかりません。
    どうしたのでしょうか?すべてのブラウザと検索エンジンに私のウェブサイトを信頼してもらうにはどうすればよいですか?

  9. このスレッドを掘り起こしてしまい申し訳ありませんが、助けが必要です。
    私のサイトの最初のページでは、お客様に地域を選択していただきます。利用可能な製品は、選択した場所によって異なります。
    ホームページにアクセスするたびに、この場所を再選択してほしくありません。
    何かアドバイスはありますか?

    • eコマースプラグインのサポートに連絡して、ユーザーのためにそれを設定する方法があるかどうかを確認する必要があります。

      管理者

  10. 素晴らしい記事です。コードをfunctions.phpファイルに入れるように書かれていました。WP Elementorを使用していますが、ユーザーが特定のページにアクセスしたときにのみクッキーの値を取得する必要があります。このコードを特定のページに追加できますか?ユーザーがフォームを初めて完了したときに、特定の Сookie を作成したいと考えています。その後、次回このページに戻ってきたときに、Сookie データからフォームが自動的に入力されるようにしたいです。これにより、再訪問時の入力フィールドが少なくなります。

    • そのためには、使用しているフォームプラグインに連絡して、すでに設定されているシステムがあるかどうかを確認する必要があります。

      管理者

    • コードをfunctions.phpに追加し、WordPress関数「is_page()」を使用して、Cookieコードスニペットに条件付きロジックを追加できます。

      is_page()関数は、ページID、スラッグ、または名前/タイトルを受け入れます。使い方は非常に簡単で、WordPressのCodexでis_page()関数について詳しく読むことができます。

返信する

コメントいただきありがとうございます。すべてのコメントは、コメントポリシーに従ってモデレーションされ、メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で意味のある会話をしましょう。