こんにちは! ライターのナナミです。
自作テーマを作っているとき、ページによってコードを切り替えたり、表示を切り替えたりしたい…なんてことがあったりしませんか?
実はWordPress独自関数には、ページの種類を判定してくれるものがあるんです。
今回はその中から、固定ページを判定するis_pageに注目!
単純に固定ページかどうかを判定する方法から、固定ページの中からピンポイントでページを指定する方法まで解説していきます。
さらに他ページの判定関数もささっと紹介しちゃいます。
WordPressのページを判定して、表示の切り替えなんて楽勝になっちゃいましょう!
条件分岐とは?
ページの種類を判定して処理や記述を分ける方法を、条件分岐と言います。
この条件分岐はWordPress独自のものではなく、プログラミングに必須とも言えるポピュラーなものです。
プログラミングを少しでもやったことがある方は、if文というものをご存知だと思います。
そう、そのif文を使うことで、WordPressでも条件分岐を行なうことができるのです。
以降の解説は、if文について理解していることを前提に進めていきます。
もしif文のことがよくわからない場合は、まずは下記の記事でif文の基本をバッチリ抑えてから読み進めてみてくださいね。
is_pageとは?
固定ページは、is_pageというWordPress独自関数で指定することができます。
このisで始まる関数は、条件分岐タグと呼ばれています。
ページや状況を判断して、処理の内容を分岐させるための関数ということです。
そんな条件分岐タグは、大体下記のように記述します。
PHP
<?php if ( is_page(ページの指定) ) { //固定ページだった時の処理内容 } ?>
ページの指定と書いてある部分は、どの固定ページなのかという詳細な条件を入れることができます。
指定方法は下記の3つです。
指定方法 | 説明 | 記述例 |
---|---|---|
ID | 固定ページのIDで指定します | 1、2、3などの半角数字 |
タイトル | 固定ページのタイトルで指定します | ‘アバウト’ ’Blog’などの文字列 |
スラッグ | 固定ページのスラッグで指定します | ‘about’ ’blog’などの半角英数字 |
では、具体的な指定方法を確認していきましょう!
固定ページかそうじゃないかを判定
単純に固定ページとそれ以外で判定する場合は、下記のように書けばOKです。
PHP
<?php if ( is_page() ) { //固定ページだった時の処理内容 } ?>
かっこの中に何も入れなければ、固定ページの場合という条件で分岐してくれます。
もちろん否定演算子も使えるので、下記のように頭に!を入れれば固定ページではない場合という条件にすることができます。
PHP
<?php if ( !is_page() ) { //固定ページ以外での処理内容 } ?>
固定ページの中から1つだけを指定
固定ページの中からある1つだけを指定する場合は、かっこの中にその固定ページを指定するための記述を入れます。
PHP
<?php //IDで指定する場合 if ( is_page(1) ) { //固定ページで、IDが1だった時の処理内容 } //タイトルで指定する場合 if ( is_page(‘アバウト’) ) { //固定ページで、タイトルがアバウトだった時の処理内容 } //スラッグで指定する場合 if ( is_page(‘about’) ) { //固定ページで、スラッグがaboutだった時の処理内容 } ?>
複数の固定ページを指定
複数の固定ページを指定する場合は、かっこの中の記述を配列で指定します。
この場合、下記のように指定方法がバラバラでも大丈夫です。
PHP
<?php if ( is_page(array( 1, 'アバウト', 'blog') ) { //固定ページで、IDが1の時、タイトルがアバウトの時、スラッグがblogだった時の処理 } ?>
その他のWordPress条件分岐
もちろんこの条件分岐タグは、固定ページ以外のものも用意されています。
よく使うものを中心に、サクッと紹介していきましょう。
ページの種類 | 条件分岐タグ |
---|---|
トップページ | is_home |
投稿詳細ページ | is_single |
一覧ページ | is_archive |
カテゴリーページ | is_category |
タグページ | is_tag |
上記以外にも色々な種類があるので、詳しくはリファレンスで確認してみてください。
まとめ
いかがでしたか?
条件分岐を理解すれば、テーマの作成がめちゃくちゃ捗ります。
プログラミングに慣れている人ならサクッとできると思いますが、ちょっと自信がないな…という初心者さんは、この記事を確認しながらぜひチャレンジしてみてくださいね。