前提
お世話になっております。
wordpressを勉強している者です。
現在ブログ付きwpでお気に入り機能を作ろうとしています。
phpとjsを用いて実装していますが、phpで作った機能だけうまくcookieが取得できません。
2日くらい原因を探っていて、WPアドミンにログインした状態ではうまくcookieが取得できるのにWPをログアウトした状態だと取得できないことまではわかりました。知識が浅いためなかなか原因と探し方もわからず困っています。どうかお助けください。
実現したいこと
wordpressブログのお気に入り機能
①お気に入りボタンが押されるとブラウザのcookieに記事idを保存 ← jsで実装できた。
②ページ再表示時にcookieから記事id情報を取得 ← phpで実装したいがwpにログインした状態の時だけ機能。
③お気に入り記事を一覧で表示 ← wpにログイン状態だけ表示できる
参考にしたページ
https://spreadsheep.net/wp-cookie/
https://dubdesign.net/web/wordpress/favoritebutton-page/#i-5
該当のソースコード
②のコード
<main> <?php//デバック用dump var_dump($_COOKIE); ←ログアウトした状態だとここがすでに空 //cookieで投稿記事idが入ったcookie取得 $cookieKey = 'favorite_item'; if (array_key_exists($cookieKey, $_COOKIE)) : $checked_items = $_COOKIE[$cookieKey]; $checked_items = json_decode($checked_items);
以下略
?>
(参考)
var_dump($_COOKIE); で表示される内容
array(0) { }
試したこと
・ブラウザ間差異なし(chrome,firefox,safari,edge)
・ディベロッパーツールで
「アプリケーション」タブから記事idが含まれるcookieは確認した
「ネットワーク」タブのリクエストヘッダーに記事idが含まれるcookieがあることは確認した
・サーバーはロリポップとxfreeを試したが同じ現象
・WPでログインした状態だと$_COOKIE取得できる。WPログインしていないと$_COOKIE取得できない。
・jsでのクッキー操作はできた(おそらくブラウザ内で完結するcookie操作のため。サーバー側でのcookie操作ではない)
・phpでのcookie操作のサイトをいろいろ回りましたがどれも$_COOKIE['key名']で簡単に取得できると書いてあるのですが、自分のケースだと全然簡単にいかなくて困っています。。。
・よくsetcookieはheadよりも前にかかないとダメとの記載は見かけますが、$_COOKIEは関係ないですよね?一応$_COOKIEの位置を上流にもっていったりもしましたが効果ありませんでした。

回答1件
あなたの回答
tips
プレビュー