WordPressには条件分岐タグが数多くあります。
そんな数ある条件分岐タグの中で、特によく使う条件分岐タグをまとめました。WordPressサイト制作の際にお役立て下さい。
まず基本となる条件分岐の書き方は以下のようになります。
<?php if ( 条件分岐タグA ) : ?>
// Aの条件に合った場合の処理
<?php endif; ?>
else を記述することで条件に合わない場合の処理も追加することができます。
<?php if ( 条件分岐タグA ) : ?>
// Aの条件に合った場合の処理
<?php else: ?>
// Aの条件に合わない場合の処理
<?php endif; ?>
①トップページ : is_front_page() || is_home()
サイトのトップページが表示されている場合
<?php if (is_front_page() || is_home()) : ?>
// サイトのトップページが表示されている場合。
<?php endif; ?>
is_front_page()
とis_home()
は細かい話をするとそれぞれ条件が違います。
ですが個人的には2つの条件分岐タグを記述し、is_front_page() || is_home()
で、「サイトのトップページの場合」としてしまっても問題ないかと思います。
違いを詳しく知りたい場合は下記サイトを御覧ください。
Codex is_home | ブログ投稿インデックスとサイトフロントページの違い
②投稿ページ : is_single()
この条件分岐タグは、個別投稿のページ(または添付ファイルページ・カスタム投稿タイプの個別ページ)が表示されているかどうかを判定する際に使用します。固定ページには適用されません。
投稿ページを表示中の場合
<?php if (is_single()) : ?>
// 投稿ページを表示中の場合。
<?php endif; ?>
ID 1の投稿が表示されている場合
<?php if (is_single('1')) : ?>
// ID 1の投稿が表示されている場合。
<?php endif; ?>
「Hello world!」というタイトルの投稿が表示されている場合
<?php if (is_single('Hello world!')) : ?>
// 「Hello world!」というタイトルの投稿が表示されている場合。
<?php endif; ?>
「hello-world」という投稿スラッグの投稿が表示されている場合
<?php if (is_single('hello-world')) : ?>
// 「hello-world」という投稿スラッグの投稿が表示されている場合。
<?php endif; ?>
IDが 1、投稿スラッグが「hello-world」またはタイトルが 「Hello world!」のいずれかにあてはまる投稿が表示されている場合
<?php if (is_single( array( 1, 'hello-world', 'Hello world!' ))) : ?>
// IDが 1、投稿スラッグが 「hello-world」、またはタイトルが 「Hello world!」のいずれかにあてはまる投稿が表示されている場合。
<?php endif; ?>
投稿のIDが 1か 2か 5か 6のいずれかが表示されている場合
<?php if (is_single( array(1, 2, 5, 6))) : ?>
// 投稿のIDが 1か 2か 5か 6のいずれかが表示されている場合。
<?php endif; ?>
投稿のスラッグが「hello-world」または「niigata」のいずれかの場合
<?php if (is_single(array('hello-world', 'niigata'))) : ?>
// 投稿のスラッグが「hello-world」または「niigata」のいずれかの場合
<?php endif; ?>
投稿のタイトルが 「Hello world!」または「Niigata」のいずれかの場合
<?php if (is_single(array('Hello world!', 'Niigata'))) : ?>
// 投稿のタイトルが 「Hello world!」または「Niigata」のいずれかの場合
<?php endif; ?>
③固定ページ : is_page()
この条件分岐タグは、固定ページが表示されているかどうかを判定する際に使用します。
固定ページが表示されている場合
<?php if (is_page()) : ?>
// 固定ページが表示されている場合。
<?php endif; ?>
ID 1の固定ページが表示されている場合
<?php if (is_page('1')) : ?>
// ID 1の固定ページが表示されている場合。
<?php endif; ?>
「Hello world!」 というタイトルの固定ページが表示されている場合
<?php if (is_page('Hello world!')) : ?>
// 「Hello world!」 というタイトルの固定ページが表示されている場合。
<?php endif; ?>
「hello-world」という投稿スラッグの固定ページが表示されている場合
<?php if (is_page('hello-world')) : ?>
// 「hello-world」という投稿スラッグの固定ページが表示されている場合。
<?php endif; ?>
IDが「1」、投稿スラッグが 「hello-world」またはタイトルが「Hello world!」のいずれかにあてはまる固定ページが表示されている場合
<?php if (is_page(array(1, 'hello-world', 'Hello world!'))) : ?>
// IDが「1」、投稿スラッグが 「hello-world」またはタイトルが「Hello world!」のいずれかにあてはまる固定ページが表示されている場合。
<?php endif; ?>
固定ページのIDが 1か 2か 5か 6のいずれかが表示されている場合
<?php if (is_page(array(1, 2, 5, 6))) : ?>
// 固定ページのIDが 1か 2か 5か 6のいずれかが表示されている場合。
<?php endif; ?>
④投稿ページ or 固定ページ : is_singular()
この条件分岐タグは、投稿(post)、カスタム投稿タイプ、固定ページ、添付ファイルのシングルページかどうかを判別する際に使用します。
投稿、カスタム投稿タイプ、固定ページ、添付ファイルのシングルページが表示されている場合
<?php if (is_singular()) : ?>
// 投稿、カスタム投稿タイプ、固定ページ、添付ファイルのシングルページが表示されている場合。
<?php endif; ?>
カスタム投稿タイプnewsの投稿が表示されている場合
<?php if (is_singular('news')) : ?>
// カスタム投稿タイプnewsの投稿が表示されている場合。
<?php endif; ?>
カスタム投稿タイプnewsまたはbookの投稿が表示されている場合
<?php if (is_singular(array('news', 'book'))) : ?>
// カスタム投稿タイプnewsまたはbookの投稿が表示されている場合。
<?php endif; ?>
⑤アーカイブページ : is_archive()
この条件分岐タグは、アーカイブページが表示されているかどうかを判定する際に使用します。
「アーカイブ」とは、カテゴリー、タグ、投稿者または日時のいずれかに基づいて投稿を集めた一覧ページを指します。
アーカイブページが表示されている場合
<?php if (is_archive()) : ?>
// アーカイブページが表示されている場合
<?php endif; ?>
⑥カテゴリーページ : is_category()
この条件分岐タグは、カテゴリーアーカイブが表示されているかどうかを判定する際に使用します。
カテゴリーアーカイブが表示されている場合
<?php if (is_category()) : ?>
// カテゴリーアーカイブが表示されている場合。
<?php endif; ?>
カテゴリーIDが 1のアーカイブが表示されている場合
<?php if (is_category('1')) : ?>
// カテゴリーIDが 1のアーカイブが表示されている場合。
<?php endif; ?>
カテゴリー名「WordPress」のアーカイブが表示されている場合
<?php if (is_category('WordPress')) : ?>
// カテゴリー名「WordPress」のアーカイブが表示されている場合。
<?php endif; ?>
カテゴリースラッグ「wordpress」のアーカイブが表示されている場合
<?php if (is_category('wordpress')) : ?>
// カテゴリースラッグ「wordpress」のアーカイブが表示されている場合。
<?php endif; ?>
カテゴリーIDが 1、スラッグが「plugin」、カテゴリー名が「WordPress」のいずれかのアーカイブが表示されている場合
<?php if (is_category(array(1, 'plugin', 'WordPress'))) : ?>
// カテゴリーIDが 1、スラッグが「plugin」、カテゴリー名が「WordPress」のいずれかのアーカイブが表示されている場合。
<?php endif; ?>
⑦タグページ : is_tag()
この条件分岐タグは、指定された投稿タグのアーカイブページが表示されているかどうかを判定します。
タグのアーカイブが表示されている場合
<?php if (is_tag()) : ?>
// タグのアーカイブが表示されている場合。
<?php endif; ?>
IDが 1であるタグのアーカイブが表示されている場合
<?php if (is_tag('1')) : ?>
// IDが 1であるタグのアーカイブが表示されている場合。
<?php endif; ?>
スラッグが「wordpress」であるタグのアーカイブが表示されている場合
<?php if (is_tag('wordpress')) : ?>
// スラッグが「wordpress」であるタグのアーカイブが表示されている場合。
<?php endif; ?>
タグ名が「plugin」であるタグのアーカイブが表示されている場合
<?php if (is_tag('plugin')) : ?>
// タグ名が「plugin」であるタグのアーカイブが表示されている場合。
<?php endif; ?>
IDが 1またはスラッグが「wordpress」またはタグ名が「plugin」であるタグのアーカイブが表示されている場合
<?php if (is_tag(array(1, 'wordpress', 'plugin'))) : ?>
// IDが 1またはスラッグが「wordpress」またはタグ名が「plugin」であるタグのアーカイブが表示されている場合。
<?php endif; ?>
⑧検索結果ページ : is_search()
この条件分岐タグは、検索ページが表示されているかどうかを判定します。
検索結果ページが表示されている場合
<?php if (is_search()): ?>
// 検索結果ページが表示されている場合。
<?php endif; ?>
⑨404ページ : is_404()
この条件分岐タグは、(「HTTP 404: Not Found」が発生した後に)404エラーページが表示されているかどうかを判定します。
404エラーページとは「サイト上に存在しないURLにユーザーがアクセスしようとした時に表示されるページ」を404エラーページと言います。
404エラーページ表示されている場合
<?php if (is_404()) : ?>
// 404エラーページが表示されている場合。
<?php endif; ?>
最後に
以上よく使う条件分岐のまとめでした。
今回は特によく使う条件分岐の解説でしたが、他にも「管理画面 : is_admin()
」や「タクソノミーページ : is_tax()
」など、ここでは解説していないものが多数あります。気になる方は下記サイトより検索してみてください。
Codex | 条件分岐