WordPressで固定ページの編集などを行っていると、特定のページのみにコードを反映させたい時がある。
今回はそんな困った状況を綺麗に解決できる方法を紹介。
条件分岐タグのis_page
そもそもis_pageは特定の判定に用いることが多いものだが、複数の指定を行う場合にハマることがある。
筆者も一度はまって面倒を感じたことがある。
特定のページのみへの反映であれば下記で簡単に解決する。
<?php if(is_page('example')) : ?>反映させるコード<?php endif; ?>
しかしこのコードでは単発のスラッグのみにしか適用できず不便と感じる場面が出てくるのだ。そこで複数のスラッグを指定して、複数ページにコードを反映させたい。そこではまったのが下記
<?php if(is_page('ex1', 'ex2', 'ex3')) : ?>
そのまま複数化すればこのコードになる。
が、動かない。
複数指定のarray
先の複数化がどうやっても動かないことから単純なスラッグの追加はis_pageでは受け付けていないとの判断。そこで下記
<?php if(is_page(array(
‘ex1’, ‘ex2’, ‘ex3’ ))) : ?>
と指定するとあっさり解決した。
arrayは整列・リストなどの意味を持ち、複数指定を行うときに使用するものだ。
全てのページにコードを反映させていくと非常に効率が悪くなる。
ページスピードにも影響し、SEO的にも不利な結果となる為、面倒ではあるがスラッグやIDで指定してコードを反映することが望ましい。
その他
ここのタイトルとは少し逸れるが、そもそもページ個別にjsやcssを組み込みたい場合はdiv枠内に書けば反映される。
<div><script><!–ここに挿入したいコード–></script></div>
毎度ページごとに記述した方が忘れることはなく確実かと思う。また、全頁共通であればよいのだが、微妙にコードが違うなどの場合も、ページ毎に設定することが必要になってくる。