[WordPress]カスタムタクソノミーの取得関数いろいろ

Posted 2012年3月29日 | Auther dada | Category PC・デジタル | Tag タグ:
Twitterにツイートする Facebookでシェアする はてなブックマーク

主に使いそうなものをまとめました。

カスタムタクソノミーの特定のタームに属する記事一覧

<?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 | Lovelog+*

現在の記事のタクソノミー一覧をリンク付きで変数として取得する

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私的マニュアル

その他の参考ページ

関連する記事

2 Comments »

  1. […] 参考にしたサイト・参考サイト1 ・参考サイト2 […]

    ピンバック by タイトルとしてターム名を呼び出すWordPress — 2012年7月13日 @ 4:42 PM

  2. […] カスタムタクソノミーの取得関数いろいろ 固定ページにカスタム投稿タイプのアーカイブを表示する […]

    ピンバック by 【study】wordpress | マイブロ — 2014年8月27日 @ 3:57 PM

Leave a comment

カテゴリー