WEB STUDIES

もっともっと、もっと先へ。株式会社アットワークMore and more,
further and further.

Tips

2022年2月28日

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; ?>

設計上の考え方

条件分岐タグは、 テンプレートを分ける代わりにロジックで制御する手段ですが、多用すると可読性が下がるため、構造で分ける場合はテンプレート階層で、振る舞いで分ける場合は条件分岐でこの使い分ける手法が最適でかつ、重要です。

まとめ

条件分岐タグは、「今どのページか?」を判定するための関数群。テンプレート階層と組み合わせることで、柔軟なテーマ設計が可能になります。テンプレート階層のルールともに、しっかり学習しましょう

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


一覧に戻る