WordPressの質問です。
当方初心者につき至らぬ情報などあるやもしれませんが、その節はどうぞ遠慮なく仰ってください。
以下宜しくお願い致します。
前提・実現したいこと
Cookieの登録を目的のタイミングに間に合わせたいです。
下記コースコードにあるように、「functions.php」で「get_header」のフックを使いCookieを登録しました。
しかしそれを「index.php」で出力できず、次のエラーになる状況です。
どうすれば「index.php」のタイミングに合うようにCookieを登録できるでしょうか?
発生している問題・エラーメッセージ
「name」がありません。と出てしまいます。
Notice: Undefined index: name in ・・・・(略)
該当のソースコード
Cookieは次の「funcitons.php」で登録し、その出力の「index.php」で上記エラーとなってしまう模様です。
「functions.php」
// Cookieの登録 add_action( 'get_header', 'set_cookies' ); function set_cookies() { $time = time() + 100000; if ( ! isset($_COOKIE["name"]) ) { setcookie( 'name', 'taro', $time, '/' ); } } // Cookieの出力 function get_user_name(){ return $_COOKIE['name']; // index.php でこれが見つからずエラーになる }
「index.php」
PHP
1<?php get_header(); ?> 2 <p>Your name is <?= get_user_name(); ?></p> 3<?php get_footer(); ?>
試したこと
Cookieの登録コードを「functions.php」でフックを使うのではなく、「header.php」の冒頭に書いても同じ結果でした。
他に施すべき対策が思い浮かばず、もし良いヒントなどあればと思いご質問させて頂きました。
補足情報(FW/ツールのバージョンなど)
開発ツールでcookieを確認しますと、アクセスしたときに「name」は入っています。
つまり「index.php」のタイミングではまだ入っていない。という状況に思えます。
そこでタイトルにあるように、「index.php」が読まれるよりも早くCookieを登録したい。という形でご質問致しましたが、もちろん他のアプローチも大歓迎です。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/23 10:29
2019/06/23 11:00