【忘備録】カテゴリー・タクソノミ―などの条件分岐まとめ(カスタム投稿含む)
ホームページをワードプレスで制作をしていると条件分岐を行うことが多々あります。
忘備録としてわかりやすくまとめておきます。
個別投稿ページ
個別投稿ページの場合。固定ページには反映されません。
|
<?php if ( is_single() ) : ?> <?php endif; ?> |
IDを指定する場合(この時は5とする)
|
<?php if ( is_single('5') ) : ?> <?php endif; ?> |
タイトルを指定する場合(この時はTITLEとする)
|
<?php if ( is_single('TITLE') ) : ?> <?php endif; ?> |
スラッグを指定する場合(この時はaboutとする)
|
<?php if ( is_single('about') ) : ?> <?php endif; ?> |
複数指定する場合
|
<?php is_single( array( 5, 'TITLE', 'TITLE2' ) ) : ?> <?php endif; ?> |
IDが5、投稿スラッグが “TITLE”、またはタイトルが “TITLE2” のいずれかにあてはまる投稿が表示されている場合。
投稿タイプアーカイブ
アーカイブページの条件分岐
|
<?php is_post_type_archive() : ?> <?php endif; ?> |
アーカイブページで指定
|
<?php is_post_type_archive( 'custom' ) : ?> <?php endif; ?> |
“custom” に一致する投稿タイプアーカイブページの場合に true を返す。
|
<?php is_post_type_archive( array( 'about', 'about2', 'about3' ) ) : ?> <?php endif; ?> |
アーカイブページが “about”/”about2″/”about3” いずれかに一致する場合に true を返す。
カテゴリーページ
ページがカテゴリーと関連付けられている場合。
|
<?php is_category() : ?> <?php endif; ?> |
カテゴリーの指定
|
<?php is_category( 'category-t' ) : ?> <?php endif; ?> |
“category-t”というカテゴリーのアーカイブページが表示されている場合。
カテゴリーに属する記事の場合
|
<?php in_category( '5' ) : ?> <?php endif; ?> |
現在の投稿がカテゴリーID 5に属する場合に true を返します。
is_categoryとin_categoryは意味合いが全く違います。
カテゴリーのページの場合は「is」 属する記事の場合は「in」
|
<?php ! in_category( array( 1,2 ) ) : ?> <?php endif; ?> |
記事が、カテゴリID1、2のいずれにも属していない場合は true を返す。
inの前に「!」がついています。
タグページ
タグのアーカイブページの場合
|
<?php is_tag() : ?> <?php endif; ?> |
スラッグ指定
|
<?php is_tag( 'tag1' ) : ?> <?php endif; ?> |
tag1 というスラッグのついたタグのアーカイブページが表示されている場合。
タクソノミーページ
クソノミーのアーカイブページが表示されている場合。
|
<?php is_tax() : ?> <?php endif; ?> |
スラッグ指定
|
<?php is_tax( 'tax1' ) : ?> <?php endif; ?> |
tax1 というスラッグのついたタグのアーカイブページが表示されている場合。
シングルページ
|
<?php is_singular() : ?> <?php endif; ?> |
is_single()、is_page() 、is_attachment() のいずれかが真である場合に true を返す。
スラッグ指定
|
<?php is_singular( 'custom' ) : ?> <?php endif; ?> |
‘custom’ というカスタム投稿タイプの場合に true を返す。
カスタム投稿のターム指定
タームが属するカスタムタクソノミーのIDを指定します。
register_taxonomy()で設定した名前を入れないといけませんが、これは必須項目となります。
「register_taxonomy()=category」「管理画面で設定したスラッグ=plan」
|
<?php if ( is_object_in_term($post->ID, 'category','plan') ): ?> <?php endif; ?> |
上記の「is_object_in_term」は簡単なので覚えておいていいと思います。
使いまわしが多いので忘備録。
HP無料診断
【実践マーケティング手法22選】 無料ダウンロード
助成金・補助金・融資・M&A等の総合経営支援サービス
「補助金パートナー」
月額定額制で、ホームページやECサイト運用、営業資料・チラシ・DMなどの製作代行から補助金や助成金など資金調達の情報を提供及び申請代行まで一手に支え会社の成長をサポートするコンサルティング型のサービスです。
ワードプレスでSEO対策をするなら【オリテン】
seoで高位置検証済みのオリジナルテンプレート制作
完全オリジナルの自社テンプレートを毎月3社様限定で制作を承っております。