• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/get the terms

提供: WordPress Codex 日本語版
移動先: 案内検索

投稿に割り当てられたタクソノミーのターム(カスタム分類の項目)を取得する。

使い方

<?php get_the_terms( $id, $taxonomy ); ?>

パラメータ

$id
整数) (必須) 投稿 ID
初期値: 0
$taxonomy
文字列) (必須) タームを取得するタクソノミーの名前。例:'category', 'post_tag', 'taxonomy slug'
初期値: なし

戻り値

(配列|false|WP_Error) 
成功するとタームのオブジェクトの配列を返します。指定されたタクソノミーにおいて、投稿にタームが付いていなければ false を返します。無効なタクソノミーが指定されると WP_Error オブジェクトを返します。

タームが付いていない投稿の場合は false になります。空の配列ではありません。

タームのオブジェクトには下記のフィールドが含まれます:

stdClass Object
(
    [term_id] =>
    [name] =>
    [slug] =>
    [term_group] => 
    [term_order] => 
    [term_taxonomy_id] =>
    [taxonomy] =>
    [description] => 
    [parent] =>
    [count] =>
    [object_id] =>
)

基本的な例

タームの一覧を表示します(タクソノミーを on-draught とします)。 これは get_the_term_list の出力と似ていますが、タームにハイパーリンクが付かない点が異なります:

<?php
$terms = get_the_terms( $post->ID, 'on-draught' );
						
if ( $terms && ! is_wp_error( $terms ) ) : 

	$draught_links = array();

	foreach ( $terms as $term ) {
		$draught_links[] = $term->name;
	}
						
	$on_draught = join( ", ", $draught_links );
?>

<p class="beers draught">
	On draught: <span><?php echo $on_draught; ?></span>
</p>

<?php endif; ?>

すべてのカスタム分類のタームを取得する

まず、テーマの functions.php に下記の関数を記述します。

<?php
// (タクソノミーと)タームのリンクを取得する
function custom_taxonomies_terms_links(){
  // 投稿 ID から投稿オブジェクトを取得
  $post = get_post( $post->ID );

  // その投稿から投稿タイプを取得
  $post_type = $post->post_type;

  // その投稿タイプからタクソノミーを取得
  $taxonomies = get_object_taxonomies( $post_type, 'objects' );

  $out = array();
  foreach ( $taxonomies as $taxonomy_slug => $taxonomy ){

    // 投稿に付けられたタームを取得
    $terms = get_the_terms( $post->ID, $taxonomy_slug );

    if ( !empty( $terms ) ) {
      $out[] = "<h2>" . $taxonomy->label . "</h2>\n<ul>";
      foreach ( $terms as $term ) {
        $out[] =
          '  <li><a href="'
        .    get_term_link( $term->slug, $taxonomy_slug ) .'">'
        .    $term->name
        . "</a></li>\n";
      }
      $out[] = "</ul>\n";
    }
  }

  return implode('', $out );
}
?>

次に、上記の関数をテーマの中で使います。パラメータは不要です。

<?php echo custom_taxonomies_terms_links(); ?>

参考

この関数の内部では、結果を取得するために get_object_term_cache() または wp_get_object_terms() を使います。

変更履歴

  • 2.5.0 にて導入されました。

ソースファイル

get_the_terms()wp-includes/category-template.php にあります。

タームタグ: is_term(), term_exists(), get_objects_in_term(), get_term(), get_term_by(), get_term_children(), get_term_link(), get_terms(), get_the_terms(), get_the_term_list(), has_term(), sanitize_term(), the_terms(), get_object_taxonomies() is_object_in_taxonomy() the_taxonomies() wp_get_object_terms(), wp_set_object_terms(), wp_get_post_terms(), wp_set_post_terms(), wp_delete_object_term_relationships()



関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/get the terms最新版との差分