Tips
WordPressの条件分岐タグ一覧
WordPress 条件分岐タグ 一覧
条件分岐タグ(Conditional Tags)は、現在表示しているページの種類を判定するための関数です。主にテンプレート内や functions.phpで使用します。
現在のページの種類を判定して、表示や内容を変える場合などに利用できます。
ここでは、WordPressの条件分岐タグについて実務でよく使うタグについて解説します。
投稿タイプ関連
| タグ | 判定内容 | 例 |
| is_single() | 投稿の詳細ページ | is_single() |
| is_singular() | 投稿 or 固定ページ | is_singular() |
| is_page() | 固定ページ | is_page(‘about’) |
| is_post_type_archive() | CPT一覧 | is_post_type_archive(‘news’) |
例)
<?php if ( is_page('about') ) {
echo '会社概要ページです';
}
<?php endif; ?>
アーカイブ関連
| タグ | 判定内容 |
| is_archive() | すべてのアーカイブ |
| is_category() | カテゴリー |
| is_tag() | タグ |
| is_tax() | カスタムタクソノミー |
| is_author() | 投稿者別 |
| is_date() | 日付アーカイブ |
| is_year() | 年別 |
| is_month() | 月別 |
| is_day() | 日別 |
例)
<?php if ( is_category('blog') ) {
echo 'ブログカテゴリ一覧';
}
<?php endif; ?>
フロント・トップページ
| タグ | 判定内容 |
| is_front_page() | フロントページ |
| is_home() | 投稿一覧(ブログトップ) |
WordPressの管理画面(ダッシュボード)で固定ページをトップに設定にした場合、is_front_page()がtrueに、投稿一覧ページをトップに設定した場合、is_home() が trueになります。
例)
<?php if (is_home() || is_front_page()) : ?>
トップページだった場合の処理
<?php else: ?>
条件に当てはまらなかった場合の処理
<?php endif; ?>
その他よく使うもの
| タグ | 判定内容 |
| is_search() | 検索結果 |
| is_404() | 404ページ |
| is_admin() | 管理画面 |
| is_user_logged_in() | ログイン中か |
| is_preview() | プレビュー表示 |
具体的な実装例
投稿タイプごとにCSSを変える
<?php if ( is_singular('news') ) {
echo '<link rel="stylesheet" href="news.css">';
}
<?php endif; ?>
404ページのみ処理
<?php if ( is_404() ) {
wp_redirect(home_url());
exit;
}
<?php endif; ?>
引数の指定例
スラッグ
<?php if ( is_page('about')) {
aboutというスラッグの固定ページだった場合の処理
}
<?php endif; ?>
ID
<?php if ( is_page(10)) {
ページIDが10だった場合の処理
}
<?php endif; ?>
配列指定
<?php if ( is_page(array('about','company')) {
スラグがaboutとcompanyのページだった場合の処理
}
<?php endif; ?>
設計上の考え方
条件分岐タグは、 テンプレートを分ける代わりにロジックで制御する手段ですが、多用すると可読性が下がるため、構造で分ける場合はテンプレート階層で、振る舞いで分ける場合は条件分岐でこの使い分ける手法が最適でかつ、重要です。
まとめ
条件分岐タグは、「今どのページか?」を判定するための関数群。テンプレート階層と組み合わせることで、柔軟なテーマ設計が可能になります。テンプレート階層のルールともに、しっかり学習しましょう

コメントを残す