WordPress-カスタム投稿タイプの情報取得方法まとめ
カスタム投稿タイプとは、WordPressの標準の投稿とは別に、
独立した投稿フォームをを作成し、ブログを投稿できるというものです。
通常のカテゴリや記事情報の取得が若干異なり、いつも忘れてしまうのでメモしておきます。
カスタム投稿タイプ・タクソノミー情報の取得
$taxonomies = get_taxonomies( ’カスタム分類名’ );
これだけだと、
このカスタム分類のタームを取得します。
さらに詳しく取得したい場合は、
<?php
$args=array(
'public' => true,
'_builtin' => false
);
$output = 'objects';
$taxonomies = get_taxonomies( $args, $output );
カスタム投稿タイプのアーカイブページ
現在のページのタームのslug
$term;
htmlに表示させる場合は
<?php echo $term; ?>
他には、こんな取得の方法もあります。
$taxonomy = $wp_query->get_queried_object();
$taxonomy_name = $taxonomy->name;
タームのラベルを表示
<?php single_term_title( ); ?>
または、
$taxonomy = $wp_query->get_queried_object();
$taxonomy_name = $taxonomy->label;
カスタム分類名の取得
$taxonomies = get_query_var('taxonomy');
タームを一覧で表示
<?php wp_list_categories(array('title_li' => '', 'taxonomy' => 'カスタム分類名')); ?>
先ほどのカスタム分類の取得を合わせることで、
現在のアーカイブページのタームをリスト化できます。
$taxonomies = get_query_var('taxonomy');
<?php wp_list_categories(array('title_li' => '', 'taxonomy' => $taxonomies )); ?>
分岐のいろいろ
カスタム分類別の分岐して表示する
カスタム分類のテンプレートの優先順位は、
カスタム分類名で表示を変えたい場合、このようにテンプレートを変えてもいいですが、一部のみ表示を変えたい場合は、分岐して表示させてしまった方が簡単です。
<?php
$taxonomy = get_query_var('taxonomy');
$term = get_term_by('slug', get_query_var('term') ,$taxonomy);
while ($term->parent!=0) $term = get_term($term->parent,$taxonomy);
if($term->slug === 'カスタム分類名A'): ?>
<p>AAAA</p>
<?php elseif($term->slug === 'カスタム分類名B'):?>
<p>BBBB</p>
<?php endif;?>
タームが階層になっていた場合、親タームと子タームで表示を変える場合
<?php
$taxonomy = $wp_query->get_queried_object();
echo $taxonomy->parent;
?>
<?php if($taxonomy->parent == 0): ?>
親
<?php else: ?>
子
<?php endif; ?>