WordPressの条件分岐タグいろいろ
条件分岐タグを使用すると、”〜の場合に処理を行う”という条件を付けて処理を行う事ができます。使用例と使う頻度が高そうなタグを書き出してみました。
(※追記:カスタム投稿タイプとタクソノミー関連は下の方にまとめ直しました。)
使用例
■個別投稿ページにのみ()の部分を表示する
<?php if( is_single( ) ): ?> (ここの部分が表示) <?php endif; ?>
■トップページ以外のページに()の部分を表示する
<?php if( !(is_home( )) ): ?> (ここの部分をトップページ以外に表示) <?php endif; ?>
使う時の注意点
条件分岐の前にquery_postで情報を取得している場合、条件分岐が機能しない為、下記のようにwp_reset_query();を条件分岐の前に記入してquery_postの処理をリセットします。
<?php wp_reset_query(); if ( is_page( '2' ) ) { echo 'This is page 2!'; } ?>
使いそうな分岐タグ
is_home()
メインブログページが表示されている場合。
is_front_page()
表示設定の「トップページの表示」として 設定されているページが表示されている場合。
is_single()
個別投稿ページが表示されている場合。
ID、記事タイトル名、投稿スラッグを指定できる。
下記のように配列で条件を複数指定できる。
is_single(array(17,’beef-stew’,’Irish Stew’))
is_page()
固定ページが表示されている場合。
ID、記事タイトル名、スラッグを指定できる。
下記のように配列で条件を複数指定できる。
is_page(array(42,’about-me’,’About Me And Joe’))
is_category()
カテゴリーのアーカイブページが表示されている場合
ID、カテゴリー名、スラッグを指定できる。
下記のように配列で条件を複数指定できる。
is_category(array(9,’blue-cheese’,’Stinky Cheeses’))
is_tag()
タグのアーカイブページが表示されている場合
スラッグを指定できる。
下記のように配列で条件を複数指定できる。
has_tag(array(‘sharp’,’mild’,’extreme’))
is_author()
作成者のアーカイブページが表示されている場合。
ID、ニックネーム、「ナイスネーム」を指定できる。
下記のように配列で条件を複数指定できる。
is_author(array(4,’john-jones’,’Vivian’))
is_date()
月別、年別、日別、時間別アーカイブページのいずれかが表示されている場合。
細かく設定↓
is_year() 年別のアーカイブページ、is_month() 月別のアーカイブページ、
is_day() 日別のアーカイブページ、is_time()、毎時別、毎分別、毎秒別のアーカイブページ
is_archive()
カテゴリー、タグ、作成者、日付別の各アーカイブページが表示されてる場合。
is_search()
検索結果のページが表示されている
is_404()
“HTTP 404: Not Found”エラーページが表示されている場合。
is_paged()
表示ページが2ページ目以降の場合。
カスタム投稿タイプやタクソノミー関連の条件分岐タグ
is_post_type_archive(‘投稿タイプ名’)
パラメータに指定した投稿タイプのアーカイブページの場合。
is_tax(‘タクソノミー名’)
パラメータに指定したタクソノミーページのアーカイブページの場合。
スラッグを指定し、下記のように配列で条件を複数指定できる。
is_tax(array(‘sharp’,’mild’,’extreme’))
※’sharp’ または ‘mild’ または ‘extreme’ というスラッグのついたタクソノミーのアーカイブページが表示されている場合。
get_post_type() == ‘投稿タイプ名’
現在表示している記事が指定の投稿タイプだった場合。
bookという投稿タイプだった場合は以下の様な書き方
if( get_post_type() == ‘book’ ) …
Tests to see if the current post is of type ‘book’
使用例
<?php if( 'book' == get_post_type() || is_tax('book_cat') || is_post_type_archive('book') ): ?> book という投稿タイプページ・book_cat というタクソノミーアーカイブページ・book のアーカイブページが表示されている場合に表示する処理〜 <?php endif; ?>
1 Comments & Tracbacks