主に使いそうなものをまとめました。
<?php // ページ数 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; // カスタム投稿タイプ「sounds」、カスタムタクソノミー「genre」、ターム「民謡」、新着4件取得 query_posts( array( 'post_type' => 'sounds', 'taxonomy' => 'genre', 'term' => '民謡', 'posts_per_page' => 4, 'paged' => $paged, 'order' => 'DESC' ) ); if (have_posts()) :while (have_posts()) : the_post(); ?> // ブログの記事出力と同じ要領 <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php endwhile; endif; wp_reset_query(); ?>
ただし複数のループをさせる場合は query_posts() ではなく get_posts() を使う。
参考:お手軽WordPress Tips:カスタムタクソノミーで作成した特定のタームに属する記事の一覧を表示数を指定して表示する - かちびと.net
参考:get_posts:WordPress私的マニュアル
ループの中で使います。
ID指定の部分は「null」でもよい。
<?php the_terns( $post->ID, 'タクソノミー名' ); ?>
取得結果
<a href="~">ターム名</a>, <a href="~">ターム名</a>
the_terms() との違いは出力するか、変数に格納するかの違いでしょうか?
セパレータは指定できます。
<?php echo get_the_term_list( $post->ID, 'タクソノミー名' ); ?>
取得結果
<a href="~">ターム名</a><a href="~">ターム名</a>
参考:関数リファレンス/get the term list - WordPress Codex 日本語版
リンクを貼らずにターム名だけ取得したい時などに使う。
$genres = get_the_terms($post->ID, 'タクソノミー名'); $genrenames = array(); foreach( $genres as $genre ){ array_push( $genrenames, $genre->name ); } echo join('/',$genrenames);
取得結果
ターム名/ターム名
get_the_terms:WordPress私的マニュアル
カテゴリ表示と同じ関数を使いますが、taxonomyというパラメータでカスタムタクソノミー名を指定する必要があります。
<ul> <?php wp_list_categories(array('title_li'=>'', 'taxonomy'=>'カスタムタクソノミー名', 'show_count'=>1)); ?> >/ul>
wp_list_categories() には非常に多くのパラメータがあります。
参考:カスタム分類(taxonomy)の一覧をサイドバーにカテゴリ一覧風に出力する-Custom Post Type UI- | WeBridge
参考:テンプレートタグ/wp list categories - WordPress Codex 日本語版
こちらもタグ一覧表示と同じ関数を使います。taxonomyというパラメータでカスタムタクソノミー名を指定する必要があります。
<ul> <?php wp_tag_cloud( array( 'taxonomy'=>'タクソノミー名' )); ?> >/ul>
参考:カスタム分類(taxonomy)の一覧をサイドバーにカテゴリ一覧風に出力する-Custom Post Type UI- | WeBridge
参考:テンプレートタグ/wp tag cloud - WordPress Codex 日本語版
アーカイブページ、つまり http://~/タクソノミー/分類/ といったURLの時に見出しなどで表示させたい時に使います。変数として取り込みたい時は第2引数を「false」にします。
<?php single_term_title('', true); ?>
タクソノミーページであるかを判別したい時は is_tax() を使います。
下記の方法ではタクソノミー名も表示させています。
<?php if(is_tax()) { $taxonomy = get_taxonomy( get_query_var('taxonomy') ); echo sprintf('%s "%s" の記事一覧', $taxonomy->labels->name, single_term_title('', false)); } ?>
参考:WordPress のアーカイブページでカスタムタクソノミーの一覧を表示している時のメッセージを出力する方法 | ウェブル
参考:single_term_title:WordPress私的マニュアル
[…] 参考にしたサイト・参考サイト1 ・参考サイト2 […]
ピンバック by タイトルとしてターム名を呼び出すWordPress — 2012年7月13日 @ 4:42 PM
[…] カスタムタクソノミーの取得関数いろいろ 固定ページにカスタム投稿タイプのアーカイブを表示する […]
ピンバック by 【study】wordpress | マイブロ — 2014年8月27日 @ 3:57 PM