1)表示するページに対する条件分岐
シングルページ
//一つの投稿タイプの場合
if (is_singular('post_type')){}
//複数の投稿タイプの場合
if (is_singular(array('post_type1', 'post_type2', 'post_type3'))){}
*is_singular('post')
という表記できる
*is_single()
より上に記述する。
アーカイブページ
//一つの投稿タイプの場合
if (is_post_type_archive('post_type')){}
//複数の投稿タイプの場合
if (is_post_type_archive(array('post_type1', 'post_type2', 'post_type3'))){}
*is_post_type_archive('post')
という表記はできない
*is_archive()
より上に記述する。
タクソノミーのアーカイブページ
▼タクソノミーアーカイブページか。
if (is_tax()){}
▼タクソノミー"movie"のアーカイブページか。
if (is_tax('movie')){}
▼タクソノミー"movie"のアーカイブページで、そのタームが "comedy" か。
if (is_tax('movie','comedy')){}
#2)ループ内などの投稿に対する条件分岐
has_term(タームを持っているか)
▼現在の投稿が、タクソノミー"movie"のターム"comedy"を持っているか。
if (has_term('comedy','movie')){}
▼現在の投稿が、タクソノミー"movie"のいずれかのタームを持っているか。
if (has_term('','movie')){}
任意の$termを取得するときは省略''
でOK。
例)ターム情報を表示したい
現在の投稿のターム表示するとき。
if(has_term('','movie')){
$terms = get_the_terms($post->ID,'movie');
foreach ( $terms as $term ){
echo $term->slug; //タームスラッグ名取得
echo $term->name; //ターム名取得
}
}
#3)投稿タイプの取得で条件分岐
▼現在の投稿タイプが"news"かどうか。
if ('news' ===get_post_type() ){}