booleanを返却する、便利なWP関数を備忘録がてらまとめようと思ったら、すでにWikiにまとめらてました。これは便利。
条件分岐タグ – WordPress Codex 日本語版
ここでは自分なりに使ったことがあるものをピックアップして補足してみる。
テンプレート判別
極論を言ってしまうと、themeフォルダ直下のindex.phpさえあれば、ファイル内でテンプレート判別の分岐処理をすることで、ホームページ(トップページ)、リスト、詳細、タグ、検索などあらゆるページを網羅することができる。
ということは別にして、たとえば特定の記事だけ違う内容やデザインを適用させたい場合、その影響範囲がページ全体か、ページの一部かによって対策を変えている。
ページ全体ならそもそも違うファイル名で用意し、ページ内の一部であれば、同一ファイル内で分岐処理をする。
違うファイルを用意する場合は、そのファイル名の付け方と適用優先度を以前にまとめたので紹介します。
テンプレートの種類と優先度
それでは分岐処理。
全ページで共通のパーツ(ヘッダー、フッター、サイドエリアなど)を呼び出している場合、よくあるのはホームページかどうかで表示を切り替えたいケースでしょうか。
ホームページ/フロントページ
is_front_page()
is_home()
この二つは似て非なる関数。WordPressでは管理画面の「外観」→「カスタマイズ」→「ホームページ設定」で、ホームページ(トップページ)として最新の投稿か固定ページを選択することができますが、is_front_page() はどちらを選択しても true を返却、is_home()は最新の投稿を選択した場合はtrue、固定ページを選択した場合はfalseになります。
他は基本テンプレートタイプに「is_」を付けるだけ
固定ページかを判別するis_page(), 投稿かを判別するis_single() などいろいろあります。引数を使うことで指定したページだけに限定できたりもできます。詳細は、条件分岐タグ – WordPress Codex 日本語版 にまとめられていますので、ここでは割愛。
モバイル判別
CSSのメディアクエリで対応ができない場合に必要になった。UserAgentを取得して自前で用意してもいいですが、メンテナンスしたくないので何かライブラリを使いたい。と思ったらそもそもWordPressにはナイスな判別処理が予めありました(感謝)。
注意点としては、タブレットもtrueを返却します。
wp_is_mobile()