解 説

endif;を使用したPHPのif文

PHPでif文を書く方法は通常のプログラムと同様の書き方とendif;を使用する書き方があります。
endif;を使用する方法はWordPressで頻繁に使用されたりします。
後者はWordPressの書き方と誤解する場合がありますが、どちらもPHPの記述方法になります。
後者のendif;を使用する方法は条件により実行する内容をHTMLタグで直接記述できるのがメリットです。
通常の方式で記述すると命令文にHTMLを記述する場合にはechoかprintで表示させなければなりません。
HTML内でphpを使用する場合に便利な記述方法になります。
if文の書き方サンプル
通常のif文

endif;方式のif文

endif;方式のif文で命令文にphpを使用する場合

WordPressの条件タグ

条件分岐タグは、現在のページが指定した条件に合致するかどうかをチェックし、true もしくは false を返します。

よく使われる条件分岐タグ

is_home() ブログのメインページが表示されたら
is_front_page() サイトのフロントページが表示されたら(固定ページでも、投稿でもサイトのフロントページなら)
is_page() 固定ページが表示されたら
is_category() カテゴリページが表示されたら
is_page(‘about’) aboutというスラッグの固定ページが表示されたら
is_single(‘drink’) drinkというスラッグの投稿ページが表示されたら
is_category(’10’) カテゴリidが10なら

条件分岐タグ一覧

メインページ

is_home()
メインブログページが表示されている場合。メインブログページとは、サイトにある時系列のブログコンテンツを表示するページです。もしフロントページに固定ページを設定していた場合、「投稿ページ」として設定したページでのみ、trueになります。

フロントページ

is_front_page()
投稿・固定ページにかかわらず、サイトのフロントページが表示されている場合。

管理パネル

is_admin()>
ダッシュボードまたは管理パネルが表示されている場合。

管理バー

is_admin_bar_showing()
管理バーが表示されている場合 。

個別投稿ページ

is_single()
個別投稿のページ(または添付ファイルページ・カスタム投稿タイプの個別ページ)が表示されている場合。
is_single( ’17’ )
ID 17の投稿が表示されている場合。
is_single( ‘Irish Stew’ )
“Irish Stew” というタイトルの投稿が表示されている場合。
is_single( ‘beef-stew’ )
“beef-stew” という投稿スラッグの投稿が表示されている場合。
is_single( array( 17, ‘beef-stew’, ‘Irish Stew’ ) )
ID が 17、投稿スラッグが “beef-stew”、またはタイトルが “Irish Stew” のいずれかにあてはまる投稿が表示されている場合。
is_single( array( 17, 19, 1, 11 ) )
シングルポストのpost IDが17か19か1か11かのどちらかの場合。
is_single( array( ‘beef-stew’, ‘pea-soup’, ‘chili’ ) )
シングルポストのpost_nameが”beef-stew”、”pea-soup” または”chili”のいずれかの場合
is_single( array( ‘Beef Stew’, ‘Pea Soup’, ‘Chili’ ) )
シングルポストはpost_titleが “Beef Stew”、”Pea Soup”または”Chili”のいずれかの場合

先頭固定表示の投稿

is_sticky()
投稿編集ページで「この投稿を先頭に固定表示」のチェックボックスがついている投稿が表示されている場合。もし ID 変数が指定されていない場合、投稿 ID は >WordPress ループの投稿のものになる。
is_sticky( ’17’ )
ID 17 の投稿が先頭固定表示の場合。

階層を持つ投稿タイプ

is_post_type_hierarchical($post_type)
この条件分岐タグは、その投稿タイプが階層型かどうかチェックします。

投稿タイプアーカイブ

is_post_type_archive()
現在のクエリが、引数に与えられた投稿タイプのアーカイブページのものかどうかチェックする。
is_post_type_archive( $post_type )
$post_type に一致する投稿タイプアーカイブページの場合。
is_post_type_archive( array( ‘foo’, ‘bar’, ‘baz’ ) )
投稿タイプアーカイブページが “foo”/”bar”/”baz” いずれかに一致する場合。

コメントポップアップ

is_comments_popup()
コメントポップアップウィンドウが表示されている場合。

投稿を含むページ

comments_open()
内で処理中の投稿がコメント受信を受け付けている場合。
pings_open()
WordPress ループ内で処理中の投稿がピン(ピンバックおよびトラックバック)を受け付けている場合。

WordPress ページ

is_page()
固定ページが表示されている場合。
is_page( ’42’ )
ID 42の固定ページが表示されている場合。
is_page( ‘About Me And Joe’ )
“About Me And Joe”というタイトルのが表示されている場合。
is_page( ‘about-me’ )
“about-me”という投稿スラッグの固定ページが表示されている場合。
is_page( array( 42, ‘about-me’, ‘About Me And Joe’ ) )
ID が 42、投稿スラッグが “about-me”、またはタイトルが “About Me And Joe” のいずれかにあてはまる固定ページが表示されている場合。
is_page( array( 42, 54, 6 ) )
ID が 42、54、または6のいずれかの固定ページが表示されている場合。

ページテンプレート

is_page_template()
ページテンプレートが使われている場合。
is_page_template(‘about.php’)
“about” というページテンプレートが使われている場合。

カテゴリーページ

is_category()
ページが $category カテゴリーと関連付けられている場合。
is_category( ‘9’ )
カテゴリーID 9のアーカイブページが表示されている場合。
is_category( ‘Stinky Cheeses’ )
“Stinky Cheeses”というカテゴリーのアーカイブページが表示されている場合。
is_category( ‘blue-cheese’ )
“blue-cheese”というカテゴリースラッグのアーカイブページが表示されている場合。
is_category( array( 9, ‘blue-cheese’, ‘Stinky Cheeses’ ) )
投稿のカテゴリーが term_ID 9、スラッグが “blue-cheese” の場合、カテゴリー名が “Stinky Cheeses” のいずれかにあてはまる場合。
in_category( ‘5’ )
(注: in_category です。) 現在の投稿がカテゴリーID 5に属する場合。
in_category( array( 1,2,3 ) )
現在の記事が、カテゴリID 1、2、3のいずれかに属している場合。
! in_category( array( 4,5,6 ) )
現在の記事が、カテゴリID 4、5、6のいずれにも属していない場合。先頭に「!」が付くことに注目してください。

タグページ

is_tag()
タグのアーカイブページが表示されている場合。
is_tag( ‘mild’ )
‘mild’ というスラッグのついたタグのアーカイブページが表示されている場合。
is_tag( array( ‘sharp’, ‘mild’, ‘extreme’ ) )
‘sharp’ または ‘mild’ または ‘extreme’ というスラッグのついたタグのアーカイブページが表示されている場合。
has_tag()
タグのある投稿がループ内で表示されている場合。バージョン2.7以前ではループ内で使う必要がある。
has_tag( ‘mild’ )
‘mild’ というタグのある投稿が表示されている場合。
has_tag( array( ‘sharp’, ‘mild’, ‘extreme’ ) )
配列内のいずれかのタグのある投稿が表示されている場合。

タクソノミーページ (その他関連するもの)

is_tax
is_tax()
タクソノミーのアーカイブページが表示されている場合。
is_tax( ‘flavor’ )
‘flavor’ というスラッグのついたタクソノミーのアーカイブページが表示されている場合。
is_tax( ‘flavor’, array( ‘sharp’, ‘mild’, ‘extreme’ ) )
‘sharp’ または ‘mild’ または ‘extreme’ というスラッグのついた flavor タクソノミーのアーカイブページが表示されている場合。
has_term
has_term()
投稿記事にタクソノミーが付属しているか調べる
has_term( ‘ニュース’, ‘category’ )
投稿記事が「ニュース」カテゴリーに属しているかどうか
term_exists
term_exists( $term, $taxonomy, $parent )
タクソノミー情報が存在するか調べる
is_taxonomy_hierarchical
is_taxonomy_hierarchical( $taxonomy )
タクソノミーオブジェクトが階層化されているかチェックします
taxonomy_exists
taxonomy_exists( $taxonomy )
あるタクソノミーが を使って登録されている場合 。

作成者ページ

is_author()
作成者のアーカイブページが表示されている場合。
is_author( ‘4’ )
ID 4 の作成者のアーカイブページを表示している場合。
is_author( ‘Vivian’ )
ニックネームが”Vivian”のアーカイブページを表示している場合。
is_author( ‘john-jones’ )
“john-jones” という「ナイスネーム」を持つ作成者のアーカイブページを表示している場合。
is_author( array( 4, ‘john-jones’ , ‘Vivian’ ) )
ID が4、ナイスネームが “john-jones”、またはニックネームが “Vivian” という作成者のアーカイブページを表示している場合。

作成者ページ

is_multi_author()
サイト上に一人以上投稿を公開しているユーザーがいる場合。バージョン 3.2から導入された。

日付別ページ

日付別のアーカイブページのいずれかが表示されている場合。(例:月別、年別、日別、時間別)
is_year()
年別のアーカイブページが表示されている場合。
is_month()
月別のアーカイブページが表示されている場合。
is_time()
毎時別、毎分別、毎秒別のアーカイブページが表示されている場合。
is_new_day()
投稿の日付が新しい日の場合。ループ内で使う。

アーカイブページ

is_archive()
各アーカイブページが表示されている場合。アーカイブページには、カテゴリー、タグ、その他のタクソノミー項目、カスタム投稿タイプアーカイブ、作成者、日付別のものがあります。

検索結果ページ

is_search()
検索結果のページが表示されている場合。

404 Not Found ページ

is_404()
“HTTP 404: Not Found”エラーページが表示されている場合。

複数にわたるページ

is_paged()
表示中のページが複数のページにわたる場合。これは例えばアーカイブページやメインページに表示する投稿数よりも多い投稿があり、複数ページに分かれているときを指し、2ページ目以降のときに true を返します。ただし、1つの投稿や>固定ページの本文が <!–nextpage–>クイックタグで複数ページに分けられている場合は当てはまりません

添付ファイルページ

is_attachment()
投稿または固定ページの添付ファイルが表示されている場合。添付ファイルは、投稿画面のメディアアップロード機能を使ってアップロードした画像などのファイルの事で、テンプレートを使って独自のページ内に表示できます。

画像の添付ファイル>

wp_attachment_is_image( $post_id )
投稿 ID が $post_id と一致する投稿の添付ファイルが画像の場合 true を返す。許可されている Mime 形式および拡張子は以下のとおり: .jpg, .jpeg, .gif, et .png.

ローカル添付ファイル

is_local_attachment( $url )
添付ファイルURIがローカルのもので、実際に添付ファイルであるかどうかを確認。

シングルページ (固定ページ、個別投稿ページ、添付ファイルページ)

is_singular()
is_single()、is_page() 、is_attachment() のいずれかが真である場合。
is_singular( ‘foo’ )
‘foo’ というカスタム投稿タイプの場合に true を返す。
is_singular( array( ‘foo’, ‘bar’, ‘baz’ ) )
‘foo’/’bar’/’baz’ というカスタム投稿タイプの投稿を表示している場合。

登録済み投稿タイプ

post_type_exists( $post_type )
指定した $post_type がを使ってこのサイトに登録されている場合。

メインクエリ

is_main_query()
現在のクエリ (ループ内など) が「メイン」クエリの場合。

新しい日付

is_new_day()
新しい日付の場合。

フィード

is_feed()
(フィード)がリクエストされた場合。
このタグは通常、一般のユーザーがページを表示しているときに条件を判断するためではなく、プラグイン開発の際に WordPress 内部で使われます。

トラックバック

is_trackback()
フックの中にトラックバックの機構が組み込まれている場合。
このタグは通常、一般のユーザーがページを表示しているときに条件を判断するためではなく、プラグイン開発の際に WordPress 内部で使われます。

プレビュー

is_preview()
未公開モードで固定リンクページを表示している場合。

抜粋あり

has_excerpt()
投稿に (手動で書かれた) 抜粋がある場合。
has_excerpt( ’42’ )
投稿 ID 42 の投稿に抜粋がある場合。

ナビゲーションメニュー割り当てあり

has_nav_menu()
登録済みのナビゲーションメニューロケーションにメニューが割り当てられている場合。

ループ内

in_the_loop()
ループ内かどうかをチェックする。ループ内にあった場合真を返す。

ダイナミックサイドバー対応

is_dynamic_sidebar()
テーマがダイナミックサイドバーに対応している場合。

サイドバー使用中

is_active_sidebar()
指定したサイドバーが使用中の場合、true を返す。サイドバー名、ID を指定できる。

ウィジェット使用中

is_active_widget( $widget_callback, $widget_id )
$widget_callback というコールバックのウィジェットまたは ID が $widget_id フロントエンドに表示される場合。

ブログインストール済み

is_blog_installed()
現在のブログが適切にインストールされている場合。

RTL 読み

is_rtl()
現在のロケールが右から左に読まれるものの場合 。

ネットワークの一部(マルチサイト)

is_multisite is_multisite()
現在のサイトがマルチサイトインストールの一部かどうかチェックする。

メインサイト(マルチサイト)

is_main_site()
サイトがネットワークのメインサイトかどうかチェックする。

ネットワークの管理者(マルチサイト)

is_super_admin()
ユーザーがネットワークの特権管理者かどうかをチェックする。

ユーザーログイン済み

is_user_logged_in()
権限グループに関わらず、ユーザーの誰かがログイン中の場合。

既存メール

email_exists( $email )
eメールアドレス$emailがすでに登録されたものかどうかをチェックし、ユーザーIDを返します

既存ユーザー名

username_exists( $username )
ユーザが登録されたものかどうかをチェックし、ユーザーIDを返します

有効化済みプラグイン

is_plugin_active( $path )
プラグインが有効化されているかチェックする。
is_plugin_active( ‘akismet/akismet.php’ )
akismetのプラグインが有効化されているかチェックする。
is_plugin_inactive( $path )
Checks if a plugin is deactivated. Same as ! is_plugin_active( $path ).
is_plugin_active_for_network( $path )
Same thing for a network activation on a multisite installation.
is_plugin_page()
Returns true if the loaded page, admin side is a plugin’s one. This function is deprecated depuis since WordPress 3.1, with no known alternative.

子テーマ

is_child_theme()
子テーマが使われているかどうかチェックする。

機能対応のテーマ

current_theme_supports()
テーマに機能が存在するかチェックする。
current_theme_support( ‘post-thumbnails’ )
テーマが「アイキャッチ画像」をサポートしているか調べる

アイキャッチ画像あり

has_post_thumbnail( $post_id )
投稿にアイキャッチ画像が登録されているかどうかをチェックする

スクリプト使用中

wp_script_is( $handle, $list )
Returns true if the script with handle is $handle has been ‘registered’, ‘enqueue/queue’, ‘done’, ou ‘to_do’ depending on $list.

詳細はWordPress Codex 日本語版を参照ください。

$wp_queryを使用した条件分岐

$wp_queryはリクエストした情報が詰め込まれたグローバル変数でオブジェクトとして格納されています。
この$wp_queryのプロパティを条件分岐に利用することができます。