ページ内目次

お前は誰だ!? ページか投稿か? 投稿もカスタム投稿なのか? だとしたら投稿タイプは何なんだ?

ただ、記事を書いているだけであれば、管理画面から投稿や、固定ページ、カスタム投稿など、既に用意されているものかせ適当なものを選択して書けばよいのですが、テーマをカスタマイズしている場合などに、どのタイプの記事なのかを判定して、それに対応したページヘッダーを表示するなんてことが、しばしばあります。

そんなときに使用する関数を整理してみました。

トップページなのかを判定するのは、is_front_page() か is_home()

どっちでも良さそうだけど、そんなわけないですね。

当たり前のトップページを使用しているのであれば、どちらを使用しても結果は同じ。

でも、トップページに特定の固定ページを割り当てているのなら、is_front_page() じゃないとダメです。

じゃ、is_home() は、いらなくね?と思ったんだけど、トップページに特定の投稿を割り当てている場合は、is_home()  じゃないとダメみたいです。

ちなみにどちらもパラメータは持ちません。

100arttoe さんのサイトで図入りで説明してくれていました。わかりやすいです。

固定ページなのかを判定するのは、is_page()

固定ページかどうかの判定には、is_page() を使います。そして、パラメータにページのIDや、スラッグを指定することで、”どの”固定ページなのかを判定することもできます。

これは、Codex 日本語版の説明で十分わかります。

投稿なのかを判定するのは、is_single()

投稿かどうかの判定には、is_single() を使い、こちらもパラメータにIDや、スラッグを指定することで、”どの”投稿なのかを判定することもできます。

これも、Codex 日本語版の説明で十分わかります。

カスタム投稿なのかを判定するのは、is_singular()

よ~く似てるけど、カスタム投稿は、is_single() では判定できないそうです。できればいいのに。

で、こちら、is_singular() を使います。

こちらは、パラメータに投稿タイプを指定できます。

is_singular( 'カスタム投稿タイプ名' );

複数を指定することもできます。こんなふうに。

is_singular( array( '投稿タイプ1', '投稿タイプ2' ) );

さらに、普通の投稿かどうかも判定できます。

is_singular( 'post' );

じゃ、こっちだけでいいじゃん(;´Д`)

↑上へまいりま〜す