記事の表示において、その元となる情報にクッキー(cookies)の値を使いたいと考えています。
しかし、下記「functions.php」の17行目で「ここでエラー」とコメントアウトした部分ではクッキーが取得できず、記事取得の情報として使えません。
エラー内容はこちらのように「見つかりません」というものです。
Notice: Undefined index: cookies in ・・・(略)
どうすればこの17行目でクッキーを取得し、それ以降の記事取得のループへとつなげることができるでしょうか?
「functions.php」
PHP
1// クッキーの登録 2add_action( 'get_header', 'set_cookies' ); 3function set_cookies() { 4 $time = time() + 100000; 5 if ( ! isset($_COOKIE["cookies"]) ) { 6 if( is_single() ) { 7 global $post; 8 $postId = $post->ID; 9 $cookies = $postId; 10 setcookie("cookies", $postId, $time, '/'); 11 } 12 } 13} 14 15// クッキーのバリデーションと取得 16function get_cookies(){ 17 $cookies = $_COOKIE['cookies']; // ここでエラー 18 $cookies = esc_html(cookies); 19 $postId = $cookies; 20 return array( 21 'postId' => $postId, 22 ); 23} 24 25// クッキーを元にして記事を出力 26function echo_contents(){ 27 // Cookieを取得 28 $cookies = get_cookies(); 29 $postId = $cookies['postId']; 30 31 // 記事を出力 32 $args = array( 33 'post_parent' => $postId 34 ); 35 $the_query = new WP_Query( $args ); 36 if ( $the_query->have_posts() ) : 37 while ( $the_query->have_posts() ) : $the_query->the_post(); 38 the_title(); 39 endwhile; 40 endif; 41 wp_reset_postdata(); 42}
なお、アクセスした際に開発ツールを見ると「cookies」は登録されているので、「functions.php」内での取得には間に合わない。という状況に思えます。
「functions.php」内での取得方法がございましたらそのコードを教えてください。
宜しくお願い致します。
--
ちなみに「cookies」はユーザー操作によってJSで頻繁に変更したい値なので、セッションを使って上記をやるというのは考えていません。クッキーでやる方法はございませんでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/23 12:05
2019/06/23 12:10
2019/06/23 12:15
2019/06/23 12:27
2019/06/23 13:33