WordPressには、「条件分岐タグ」という便利な関数群があります。
これらを使うことで、ページの種類や状態に応じて表示内容を変えたり、特定の処理を実行したりすることが可能です。
この記事では、条件分岐タグの基本的な使い方と、よく使われる代表的なタグを詳しく解説します。
目次
条件分岐タグとは?
条件分岐タグは、WordPressのテンプレートファイル内で「もしこの条件なら〜」と判断するための関数です。戻り値は真(true)か偽(false)で返され、PHPのif文と組み合わせて使います。
例:
if ( is_home() ) {
echo 'これはホームページです。';
}
よく使われる代表的な条件分岐タグ
1. is_home()
トップページ(ブログ投稿一覧ページ)かどうかを判定します。
if ( is_home() ) {
echo 'ここは投稿一覧ページです。';
}
固定ページをホームにした場合、フロントページではfalseになります。
2. is_front_page()
サイトのフロントページ(トップページ)かどうかを判定します。
ホームを「最新の投稿」にした場合、固定ページをホームにした場合どちらでもフロントページでtrueになります。
if ( is_front_page() ) {
echo 'ここはフロントページです。';
}
3. is_single()
個別投稿ページかどうかを判定します。引数に投稿IDやスラッグを指定して特定の投稿だけ判定も可能です。
if ( is_single() ) {
echo 'これは投稿ページです。';
}
is_single()
はカスタム投稿でもtrueになるので、注意してください。
4. is_page()
固定ページかどうかを判定します。
if ( is_page() ) {
echo 'これは固定ページです。';
}
特定ページのIDやスラッグを指定可能です。
if ( is_page('about') ) {
echo 'これは「about」ページです。';
}
5. is_category()
カテゴリーアーカイブページかどうかを判定します。
if ( is_category() ) {
echo 'これはカテゴリーページです。';
}
引数で特定のカテゴリーも指定できます。
if ( is_category('news') ) {
echo 'これは「news」カテゴリーのページです。';
}
6. is_tag()
タグアーカイブページかどうかを判定します。
if ( is_tag() ) {
echo 'タグページです。';
}
引数で特定のタグも指定できます。
if ( is_tag('wordpress') ) {
echo '「wordpress」タグのページです。';
}
7. is_search()
検索結果ページかどうかを判定します。
if ( is_search() ) {
echo 'これは検索結果ページです。';
}
8. is_404()
404(ページが見つからない)エラーページかどうかを判定します。
if ( is_404() ) {
echo 'ページが見つかりません。';
}
9. is_author()
投稿者アーカイブページかどうかを判定します。
if ( is_author() ) {
echo 'これは投稿者アーカイブページです。';
}
10. is_archive()
カテゴリー、タグ、投稿者、カスタム投稿タイプなどのアーカイブページ全般を判定します。
if ( is_archive() ) {
echo 'アーカイブページです。';
}
その他の条件分岐タグ
is_attachment()
添付ファイル(メディア)ページか。is_singular()
投稿・固定ページ・カスタム投稿など「単一ページ」か。引数で投稿タイプ指定も可。is_post_type_archive()
カスタム投稿タイプのアーカイブページか。is_tax()
カスタムタクソノミー(カテゴリー以外の分類)のアーカイブか。is_paged()
ページ送り(2ページ目以降のページ)かどうか。is_preview()
投稿のプレビュー表示か。is_admin()
管理画面かどうか。is_user_logged_in()
ユーザーがログイン中か。is_main_query()
メインクエリか(ループ内のメインクエリを判定)。has_post_thumbnail()
投稿にアイキャッチ画像が設定されているか。
条件分岐タグの応用例
投稿かつ特定カテゴリーの条件判定
if ( is_single() && in_category('news') ) {
echo 'ニュース記事の個別ページです。';
}
固定ページかつ2ページ目以降の判定
if ( is_page() && is_paged() ) {
echo '固定ページの2ページ目以降です。';
}
ログイン中のユーザーだけに表示
if ( is_user_logged_in() ) {
echo 'こんにちは、ログインユーザーさん!';
}
条件分岐タグの組み合わせ
複数の条件を組み合わせて使うことも可能です。
if ( is_single() && in_category('news') ) {
echo '投稿かつnewsカテゴリーの記事です。';
}
注意点
- 条件分岐タグは主にテンプレートのループや
template_redirect
フックの中で使われます。 - 条件を正しく使うことで、不要な処理を省き、パフォーマンスを向上できます。
is_main_query()
はWP_Queryのループ判定に便利です。
まとめ
条件分岐タグはテーマ開発やカスタマイズに欠かせない基本機能です。ページの種類や状況に応じて柔軟にコンテンツを切り替えたいときに活用してください。