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

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

「関数リファレンス/get the terms」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(関数リファレンス/get term に(間違えて?)入っていた内容をこちらへ移動。2011年2月17日 (木) 16:08 Takahashi Fumiki 版から。)
(en:Function Reference/get the terms 19:26, 15 April 2014 Sam 版を反映して和訳を見直し。)
1行目: 1行目:
{{Old}}
 
 
 
<div id="Description">
 
<div id="Description">
== 解説 ==
+
== 説明 ==
 
</div>
 
</div>
  
投稿に割り当てられたタクソノミーを取得する。この関数はループ内でのみ使用される。〔※訳注 ループ外でも使用できる〕
+
投稿に割り当てられたタクソノミーのターム(カスタム分類の項目)を取得する。
  
 
<div id="Usage">
 
<div id="Usage">
== 使用例 ==
+
== 使い方 ==
 
</div>
 
</div>
  
<pre>
+
<?php get_the_terms( $id, $taxonomy ); ?>
&laquo;? php get_the_terms( $id, $taxonomy ) ?&raquo;
+
</pre>
+
  
 
<div id="Parameters">
 
<div id="Parameters">
== 引数 ==
+
== パラメータ ==
 
</div>
 
</div>
  
{{Parameter|$id|int|投稿ID|必須|0}}
+
{{Parameter|$id|整数|投稿 ID|必須|0}}
{{Parameter|$taxonomy|string|タクソノミー名}}
+
{{Parameter|$taxonomy|文字列&#124;配列|タームを取得する[[カスタム分類|タクソノミー]]の名前。例:'category', 'post_tag', 'taxonomy slug'}}
  
<div id="Returns">
+
<div id="Return Values">
 
== 戻り値 ==
 
== 戻り値 ==
 
</div>
 
</div>
  
; (array|bool) : 取得できない場合は<tt>false</tt>。成功した場合はタームオブジェクトからなる配列。
+
; (配列|false|WP_Error) : 成功するとタームのオブジェクトの配列を返します。指定されたタクソノミーにおいて、投稿にタームが付いていなければ <code>false</code> を返します。無効なタクソノミーが指定されると [[クラスリファレンス/WP_Error|WP_Error]] オブジェクトを返します。
  
<div id="Example">
+
タームが付いていない投稿の場合は <code>false</code> になります。空の配列ではありません。
 +
 
 +
タームのオブジェクトには下記のフィールドが含まれます:
 +
 
 +
<pre>
 +
stdClass Object
 +
(
 +
    [term_id] =>
 +
    [name] =>
 +
    [slug] =>
 +
    [term_group] =>
 +
    [term_order] =>
 +
    [term_taxonomy_id] =>
 +
    [taxonomy] =>
 +
    [description] =>
 +
    [parent] =>
 +
    [count] =>
 +
    [object_id] =>
 +
)
 +
</pre>
 +
 
 +
<div id="Examples">
 
== 例 ==
 
== 例 ==
 
</div>
 
</div>
  
<div id="A_Basic_Example">
+
<div id="A Basic Example">
 
=== 基本的な例 ===
 
=== 基本的な例 ===
 
</div>
 
</div>
 +
タームの一覧を表示します(タクソノミーを on-draught とします)。
 +
これは <code>get_the_term_list</code> の出力と似ていますが、タームにハイパーリンクが付かない点が異なります:
 +
 +
<pre>
 +
<?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; ?>
 +
 +
</pre>
 +
 +
<div id="Get terms for all custom taxonomies">
 +
=== すべてのカスタム分類のタームを取得する ===
 +
</div>
 +
まず、テーマの <code>functions.php</code> に下記の関数を記述します。
 +
<pre>
 +
<?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 );
 +
}
 +
?>
 +
</pre>
 +
 +
次に、上記の関数をテーマの中で使います。パラメータは不要です。
 +
<pre>
 +
<?php echo custom_taxonomies_terms_links(); ?>
 +
</pre>
  
 
<div id="Notes">
 
<div id="Notes">
== 注意点 ==
+
== 参考 ==
 
</div>
 
</div>
  
結果を取得するために<tt>get_object_term_cache()</tt><tt>wp_get_object_terms()</tt>を使います。
+
この関数の内部では、結果を取得するために <tt>get_object_term_cache()</tt> または <tt>wp_get_object_terms()</tt> を使います。
  
<div id="Change_Log">
+
<div id="Change Log">
== 改訂履歴 ==
+
== 変更履歴 ==
 
</div>
 
</div>
  
* Since: [[Version 2.5|2.5.0]]
+
* [[Version 2.5|2.5.0]] にて導入されました。
  
 
<div id="Source File">
 
<div id="Source File">
52行目: 140行目:
 
</div>
 
</div>
  
<tt>get_the_terms()</tt>は<tt>wp-includes/category-template.php</tt>にあります。
+
<tt>get_the_terms()</tt> は {{Trac|wp-includes/category-template.php}} にあります。
  
<div id="Related ">
+
<div id="Related">
 
== 関連項目 ==
 
== 関連項目 ==
 
</div>
 
</div>
[[関数リファレンス/get_the_term_list|get_the_term_list()]],
 
[[関数リファレンス/wp_get_object_terms|wp_get_object_terms()]]
 
  
 +
{{Term Tags}}
 +
 +
{{Tag Footer}}
 +
 +
{{原文|Function Reference/get the terms|142711}} <!-- 19:26, 15 April 2014 Sam a 版 -->
 +
 +
{{DEFAULTSORT:Get_the_terms}}
 +
[[Category:関数]]
 +
[[Category:タクソノミー]]
  
[[Category:関数リファレンス]]
+
[[en:Function Reference/get the terms]]

2014年7月31日 (木) 15:28時点における版

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

使い方

<?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最新版との差分