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

かつて、私たちのサイトの1つでユーザーログインやショッピングカートが失敗し続けるという、イライラする問題に直面しました。その問題は、私たちが見落としていたこと、つまりサイトがCookieをどのように管理していたかでした。

Cookieのような技術的な設定を扱うことは intimidating に感じられるかもしれませんが、それらを正しく設定することは、スムーズなユーザーエクスペリエンスの鍵となります。私たち自身のCookieの問題を解決した後、誰でも従うことができる簡単なシステムを開発しました。

このガイドでは、WordPressでCookieを設定、取得、削除するために使用する正確な手順を共有します。プロセスを分解して、サイトのCookieを自信を持って管理できるようにします。

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

注意: これは高度なチュートリアルです。HTML、CSS、WordPressサイト、PHPに関する十分な知識が必要です。

Cookieとは何ですか?

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

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

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

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

これが、欧州連合がEUクッキー法を制定した理由であり、ウェブサイトの所有者に情報の保存にクッキーを使用することを宣言することを義務付けています。多くのサイトは基本的な通知を表示するだけですが、真のGDPRコンプライアンスには、クッキーの同意とトラッキングスクリプトの積極的な管理が必要です。

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

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

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

GDPR/CCPAに対応するクッキーポップアップをWordPressに追加する方法については、当社のガイドでご自身のサイトでその方法を学ぶことができます。GDPR/CCPAに対応するクッキーポップアップの追加方法

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

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

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

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

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

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

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

Google Chromeのサイト設定

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

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

Chrome設定のCookieセクション

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

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

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

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

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

サイトクッキーを表示

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

WordPressでクッキーを設定する方法

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

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

  • クッキー名
  • Cookieの値
  • 有効期限 – オプションで、クッキーが無効になるまでの期間を設定します
  • パス – オプションで、デフォルトでサイトのルートが使用されます
  • ドメイン – オプションで、デフォルトでウェブサイトのドメインを使用します
  • セキュア – オプションで、true の場合のみ HTTPS 経由で Cookie データを転送します
  • httponly – オプションで、trueに設定すると、クッキーはHTTP経由でのみアクセス可能になり、スクリプトで使用できなくなります

さて、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);

}

} 

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

WordPressでCookieを取得して使用する方法

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

Cookieの名前がわかっている場合は、$_COOKIE[]変数を使用してPHPのどこからでも簡単に呼び出すことができます。Cookieを設定し、それを使用してウェブサイトで何かを行うコードを追加しましょう。

function wpb_cookies_tutorial2() {
// Time of user's visit
$visit_time = date('F j, Y g:i a');

// Check if cookie is already set
if(isset($_COOKIE['wpb_visit_time'])) {

// Do this if cookie is set
function visitor_greeting() {

// Use information stored in the cookie
$lastvisit = $_COOKIE['wpb_visit_time'];

$string .= 'You last visited our website '. $lastvisit .'. Check out whats new'; 

return $string;
}	

} else { 

// Do this if the cookie doesn't exist
function visitor_greeting() {
$string .= 'New here? Check out these resources...' ;
return $string;
}	

// Set the cookie
setcookie('wpb_visit_time',  $visit_time, time()+31556926);
}

// Add a shortcode
add_shortcode('greet_me', 'visitor_greeting');

}
add_action('init', 'wpb_cookies_tutorial2');

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

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

ウェブサイトをより便利にするために、コードを自由に編集してください。例えば、リピーターユーザーには最新の投稿を、新規ユーザーには人気の投稿を表示することができます。

WordPressでクッキーを削除する方法

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

クッキーを削除するには、コードに次の行を追加する必要があります。

unset($_COOKIE['wpb_visit_time']);

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

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

function wpb_cookies_tutorial2() {
// Time of user's visit
$visit_time = date('F j, Y g:i a');

// Check if cookie is already set
if(isset($_COOKIE['wpb_visit_time'])) {

// Do this if cookie is set
function visitor_greeting() {

// Use information stored in the cookie
$lastvisit = $_COOKIE['wpb_visit_time'];

$string .= 'You last visited our website '. $lastvisit .'. Check out whats new'; 

// Delete the old cookie so that we can set it again with updated time
unset($_COOKIE['wpb_visit_time']); 

return $string;
}	

} else {
// Do this if the cookie doesn't exist
function visitor_greeting() {
$string .= 'New here? Check out these resources...' ;
return $string;
}
}
add_shortcode('greet_me', 'visitor_greeting');

// Set or Reset the cookie
setcookie('wpb_visit_time',  $visit_time, time()+31556926);
}
add_action('init', 'wpb_cookies_tutorial2');

ご覧のとおり、このコードは格納されている情報を使用した後、クッキーを削除します。その後、更新された時間情報でクッキーを再度設定します。

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()関数について詳しく読むことができます。

返信を残す

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