[wp]パラメータとcookieの取得・登録で振り分け

前の記事で作り込もうとしたら躓いたので別手法を取る。

前の記事の何が問題だったか

header.phpでパラメータを取得、page.phpとかarchive.phpとかの表示・非表示はうまくいった。でも切り替える内容は定形的なもんで、だったらfooter.phpに仕込みたいなってなった。で、header.php→footer.phpはグローバル化しても変数を持っていけない。footer.php側で取得して料理しないとダメだった。

ついでに、流入元によりその後のページ遷移でも切り替えを維持したいってなって、だったらcookieに登録しなきゃねっていう。

cookieの登録は最上部でやれっていうルールがあるから従おうにも、get_headerしてる方が優先されるのか、される方が優先されるのか、諸々考えてるとめんどくなったので、全部functions.phpで済ませてやる

という感じ。

functions.php

「?utm_source=line」の有無をトリガーにする。
指定したパラメータ通りだったらcookieを「”fromLine”:”true”」で仕込む。

setcookieについてはさっき知ったばっかだから下手なことは言わない。

これを活用すると、以下のif文になる。

パラメータとcookie両を指定する必要がある。cookieが発火するのは遷移または再読み込み時。

footer.phpに仕込んで動作するんで、全ページで対応するってことだわね。

以上。

余談

functions.php上で作成した変数はグローバル変数として使用できる。
やってみたら確かに使えたんだけど、上のやつとどう絡めていいかがよくわかんないので課題とする。

シェアする

  • このエントリーをはてなブックマークに追加