当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(英語版をコピペ)
 
(ひらがな → カタカナ)
 
(2人の利用者による、間の6版が非表示)
1行目: 1行目:
==Description==
+
<div id="Description">
 +
== 説明 ==
 +
</div>
  
Retrieve the terms in a taxonomy or list of taxonomies.
+
指定されたタクソノミー(カスタム分類)またはタクソノミーのリストについて、それに含まれるタームを取得します。
  
Returns an array of term objects, or a WP_Error object if any of the taxonomies to get terms from does not exist.
+
タームのオブジェクトの配列を返します。
 +
もしタクソノミーの何れかが存在しなければ WP_Error オブジェクトを返します。
  
==Usage==
+
<div id="Usage">
 +
== 使い方 ==
 +
</div>
  
%%%<?php get_terms( $taxonomies, $args ) ?>%%%
+
<?php $terms = get_terms( $taxonomies, $args ); ?>
  
=== Default Usage ===
+
<div id="Default Usage">
 +
=== デフォルトの使い方 ===
 +
</div>
  
<pre><?php  
+
<pre>
// no default values. using these as examples
+
<?php  
 +
// タクソノミーにはデフォルト値がないので下記を例として使う。
 
$taxonomies = array(  
 
$taxonomies = array(  
 
     'post_tag',
 
     'post_tag',
28行目: 36行目:
 
     'fields'        => 'all',  
 
     'fields'        => 'all',  
 
     'slug'          => '',  
 
     'slug'          => '',  
     'parent'         => '',
+
     'parent'       => '',
 
     'hierarchical'  => true,  
 
     'hierarchical'  => true,  
 
     'child_of'      => 0,  
 
     'child_of'      => 0,  
 +
    'childless'    => false,
 
     'get'          => '',  
 
     'get'          => '',  
 
     'name__like'    => '',
 
     'name__like'    => '',
 +
    'description__like' => '',
 
     'pad_counts'    => false,  
 
     'pad_counts'    => false,  
 
     'offset'        => '',  
 
     'offset'        => '',  
38行目: 48行目:
 
     'cache_domain'  => 'core'
 
     'cache_domain'  => 'core'
 
);  
 
);  
?></pre>
 
  
== Parameters ==
+
$terms = get_terms( $taxonomies, $args );
 +
?>
 +
</pre>
 +
 
 +
<div id="Parameters">
 +
== パラメータ ==
 +
</div>
  
{{Parameter|$taxonomies|string&#124;array|The taxonomies to retrieve terms from.}}
+
{{Parameter|$taxonomies|文字列&#124;配列|タームを取得するタクソノミー。(参考:[[カスタム分類#Default_Taxonomies|デフォルト分類]])}}
{{Parameter|$args|string&#124;array|Change what is returned.|optional|array}}
+
{{Parameter|$args|文字列&#124;配列|戻り値の種類を変更。|オプション|下記の[[#Possible Arguments|指定できる引数]]を参照。}}
  
===Possible Arguments===
+
<div id="Possible Arguments">
 +
=== 指定できる引数 ===
 +
</div>
  
; orderby : (''string'')
+
; orderby : (''文字列'') ソートするフィールド。
 
:* <tt>id</tt>
 
:* <tt>id</tt>
 
:* <tt>count</tt>
 
:* <tt>count</tt>
:* <tt>name</tt> - Default
+
:* <tt>name</tt> - デフォルト
 
:* <tt>slug</tt>
 
:* <tt>slug</tt>
:* <tt>term_group</tt> - Not fully implemented (avoid using)
+
:* <tt>term_group</tt> - 実装が充分ではない(利用を避けること)
 
:* <tt>none</tt>
 
:* <tt>none</tt>
  
; order : (''string'')
+
; order : (''文字列'') ソートする方向。
:* <tt>ASC</tt> - Default
+
:* <tt>ASC</tt> - デフォルト(昇順)
 
:* <tt>DESC</tt>
 
:* <tt>DESC</tt>
  
; hide_empty : (''boolean'') Whether to return empty $terms.
+
; hide_empty : (''真偽値'') 空の(投稿などのオブジェクトに付けられていない)タームを<b>返しません</b>。
:* <tt>1 (true)</tt> - Default (i.e. Do not show empty terms)
+
:* <tt>1 (true)</tt> - デフォルト(空のタームを出力しない)
 
:* <tt>0 (false)</tt>
 
:* <tt>0 (false)</tt>
  
; exclude : (''integer|string|array'') An array of term ids to exclude. Also accepts a string of comma-separated ids.
+
; exclude : (''整数|文字列|配列'') 除外するタームの ID の配列。ID をコンマで区切って文字列として指定することもできます。
  
; exclude_tree : (''integer'') An array of parent term ids to exclude
+
; exclude_tree : (''整数'') 除外する親タームの ID の配列。
  
; include : (''integer'') An array of term ids to include. Empty returns all.
+
; include : (''整数'') 含めるタームの ID の配列。空文字列を指定するとすべてのタームを対象にします。
  
; number : (''integer'') The maximum number of terms to return.  Default is to return them all.
+
; number : (''整数'') 返すタームの最大個数。デフォルトではすべてのタームを返します。
  
; fields : (''string'')
+
; fields : (''文字列'')
:* all - returns an array of term objects - Default
+
:* all - タームオブジェクトの配列を返す - デフォルト
:* ids - returns an array of integers
+
:* ids - 整数(ターム ID)の配列を返す
:* names - returns an array of strings
+
:* names - 文字列(ターム名)の配列を返す
:* count - (3.2+) returns the number of terms found
+
:* count - (バージョン 3.2 以上)見つかったタームの個数を返す
:* id=>parent - returns an associative array where the key is the term id and the value is the parent term id if present or 0
+
:* id=>parent - 連想配列を返す。キーはターム ID、値は親タームの ID またはゼロ(親がない場合)
 +
:* id=>slug - 連想配列を返す。キーはターム ID、値はスラッグ
 +
:* id=>name - 連想配列を返す。キーはターム ID、値はターム名
  
; slug : (''string'') Returns terms whose "slug" matches this value. Default is empty string.
+
; slug : (''文字列|配列'') 指定した値がスラッグに一致するタームを返す。デフォルトは空文字列。
  
; parent : (''integer'') Get direct children of this term (only terms whose explicit parent is this value). If 0 is passed, only top-level terms are returned. Default is an empty string.
+
; parent : (''整数'') 直近の子タームを返す(指定された値が親タームの ID であるタームのみ)。ゼロを指定するとトップレベルのタームのみを返す。デフォルトは空文字列。
  
; hierarchical : (''boolean'') Whether to include terms that have non-empty descendants (even if 'hide_empty' is set to true).
+
; hierarchical : (''真偽値'') 子タームを持つタームを含める( 'hide_empty' true のときでも)。
:* <tt>1 (true)</tt> - Default
+
:* <tt>1 (true)</tt> - デフォルト
 
:* <tt>0 (false)</tt>
 
:* <tt>0 (false)</tt>
  
; child_of : (''integer'') Get all descendents of this term. Default is 0. '''Note:''' the difference between <tt>child_of</tt> and <tt>parent</tt> is that where <tt>parent</tt> only gets direct children of the parent term (ie: 1 level down), <tt>child_of</tt> gets ''all'' descendants (as many levels as are available)
+
; child_of : (''整数'') 指定したタームの子孫をすべて取得します。デフォルトは 0 です。'''参考:''' <tt>child_of</tt> <tt>parent</tt> の違いは、<tt>parent</tt> が直近の子ターム(1 レベル下)のみを取得するのに対して、<tt>child_of</tt> ''すべての''子孫タームを取得します(存在するレベルすべて)。
  
; get : (''string'') Default is nothing . Allow for overwriting 'hide_empty' and 'child_of', which can be done by setting the value to 'all'.
+
; childless : (''真偽値'') タクソノミーが階層有りの場合、子を持たないタームのみを返します。階層無しの場合、すべてのタームを対象とします。([[Version 4.2|バージョン 4.2]] で追加されました。)
  
; name__like : (''string'') The term name you wish to match. It does a LIKE 'term_name%' query. This matches terms that '''begin with''' the 'name__like' string. 
+
; get : (''文字列'') デフォルトは空文字列です。この値を 'all' にすると 'hide_empty' 'child_of' が無効になります(すべてのタームを取得します)。
  
; pad_counts : (''boolean'') If true, count all of the children along with the $terms.
+
; name__like : (''文字列'') ターム名にマッチさせたい文字列。ターム名に対してのみ、データベースクエリの LIKE '%string%' を実行します。これは名前に 'name__like' の文字列を'''含む'''タームにマッチします。'''参考:'''これは WordPress 3.7 からの仕様です。以前は name__like の文字列'''で始まる'''名前のタームにマッチしていました。[http://core.trac.wordpress.org/ticket/8214 チケット #8214] を参照してください。
 +
 
 +
; description__like : (''文字列'') タームの説明に 'description__like' の文字列を含む(大文字小文字を区別して)タームを返します。デフォルトは空文字列です。説明に対してのみ、データベースクエリの LIKE '%string%' を実行します。これは説明に 'description__like' の文字列を'''含む'''タームにマッチします。
 +
 
 +
; pad_counts : (''真偽値'') true のとき、子孫タームすべてのカウント(投稿などのオブジェクトに付けられている回数)を合計します。
 
:* <tt>1 (true)</tt>
 
:* <tt>1 (true)</tt>
:* <tt>0 (false)</tt> - Default
+
:* <tt>0 (false)</tt> - デフォルト
  
; offset : (''integer'') The number by which to offset the terms query.
+
; offset : (''整数'') 見つかったタームの先頭から指定の個数を読み飛ばして返します。必ず 'number' と一緒に使ってください。そうしないと 'offset' は無視されて結果すべてが返されます。
  
; search : (''string'') The term name you wish to match. It does a LIKE '%term_name%' query. This matches terms that contain the 'search' string.
+
; search : (''文字列'') ターム名にマッチさせたい文字列。ターム名とスラッグに対して、データベースクエリの LIKE '%search_string%' を実行します。これは 'search_string' の文字列を'''含む'''タームにマッチします。
  
; cache_domain : (''string'') Version 3.2 and above. The 'cache_domain' argument enables a unique cache key to be produced when the query produced by get_terms() is stored in object cache. For instance, if you are using one of this function's filters to modify the query (such as 'terms_clauses'), setting 'cache_domain' to a unique value will not overwrite the cache for similar queries. Default value is 'core'.
+
; cache_domain : (''文字列'') バージョン 3.2 以上で使えます。'cache_domain' 引数は、get_terms() が作成したクエリにユニークなキャッシュ用キーを付与できます。例えば、この関数のフィルターを使ってクエリを変更するとき(例えば 'terms_clauses')、'cache_domain' にユニークな値を指定しておけば、キャッシュにある同様のクエリを上書きせず残しておけます。デフォルト値は 'core' です。
  
'''NOTE''': Arguments are passed in the format used by [[Function_Reference/wp_parse_args|wp_parse_args()]]. e.g.
+
'''参考''':引数は [[関数リファレンス/wp_parse_args|wp_parse_args()]] で使われる形式で与えます。
  
'''NOTE''': The difference between 'search' and 'name__like' is the leading '%' in the LIKE clause. So search is '%search%' and name__like is 'name__like%'
+
<div id="Return Values">
 +
== 戻り値 ==
 +
</div>
  
== Return Values ==
+
; <tt>(配列&#124;文字列&#124;WP_Error)</tt> : タームオブジェクトの配列。タームが見つからなければ空の配列を返します。<tt>$taxonomies</tt> の何れかが存在しなければ <tt>[[クラスリファレンス/WP_Error | WP_Error]]</tt> を返します。<tt>'fields'</tt> 引数が <tt>'count'</tt> の時は、見つかったタームの個数を文字列形式で返します。
  
; (array&#124;WP_Error) : Array of term objects or an empty array if no terms were found. WP_Error if any of <tt>$taxonomies</tt> does not exist.
+
返されるフィールドは以下のとおり:
 +
* <tt>term_id (下記の「注意」を参照)</tt>
 +
* <tt>name</tt>
 +
* <tt>slug</tt>
 +
* <tt>term_group</tt>
 +
* <tt>term_taxonomy_id</tt>
 +
* <tt>taxonomy</tt>
 +
* <tt>description</tt>
 +
* <tt>parent</tt>
 +
* <tt>count</tt>
 +
'''注意:文字列と整数の混同について!''' フィールドの値は <tt>term_id</tt> も含めて文字列形式で返されます。それを使う前に、値が数値なら本物の整数に型変換してください。そうしないと WordPress は、ターム ID と、数字だけから成るスラッグを混同してしまいます!
  
== Examples ==
+
<div id="Examples">
 +
== 例 ==
 +
</div>
  
Get all post categories ordered by count.
+
すべての投稿のカテゴリーをカウント(投稿に付けられている回数)でソートして取得します。
  
String syntax:
+
文字列形式の引数:
 
  $categories = get_terms( 'category', 'orderby=count&hide_empty=0' );
 
  $categories = get_terms( 'category', 'orderby=count&hide_empty=0' );
  
Array syntax:
+
配列形式の引数:
 
<pre>
 
<pre>
 
  $categories = get_terms( 'category', array(
 
  $categories = get_terms( 'category', array(
125行目: 162行目:
 
</pre>
 
</pre>
  
Get all the links categories:
+
リンクのカテゴリーをすべて取得します:
  $mylinks_categories = get_terms('link_category', 'orderby=count&hide_empty=0');
+
  $mylinks_categories = get_terms( 'link_category', 'orderby=count&hide_empty=0' );
  
List all the terms in a custom taxonomy, without a link:
+
カスタム分類のタームをすべてリストします。リンクは付けません:
<pre> $terms = get_terms("my_taxonomy");
+
<pre>
  $count = count($terms);
+
$terms = get_terms( 'my_taxonomy' );
if ( $count > 0 ){
+
  if ( ! empty( $terms ) && !is_wp_error( $terms ) ){
     echo "<ul>";
+
     echo '<ul>';
 
     foreach ( $terms as $term ) {
 
     foreach ( $terms as $term ) {
      echo "<li>" . $term->name . "</li>";
+
        echo '<li>' . $term->name . '</li>';
       
+
 
     }
 
     }
     echo "</ul>";
+
     echo '</ul>';
 
  }
 
  }
 
</pre>
 
</pre>
  
List all the terms, with link to term archive, separated by an interpunct ('''&middot;'''). (''language specific, WPML method''):
+
すべてのタームを取得して、タームのアーカイブへのリンクを付け、中黒 ('''&middot;''') で区切って表示します:
<pre lang="php">$args = array( 'taxonomy' => 'my_term' );
+
<pre lang="php">
 +
$args = array( 'hide_empty=0' );
  
$terms = get_terms('my_term', $args);
+
$terms = get_terms( 'my_term', $args );
 
+
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
$count = count($terms); $i=0;
+
    $count = count( $terms );
if ($count > 0) {
+
    $i = 0;
     $cape_list = '<p class="my_term-archive">';
+
     $term_list = '<p class="my_term-archive">';
     foreach ($terms as $term) {
+
     foreach ($terms as $term ) {
 
         $i++;
 
         $i++;
     $term_list .= '<a href="' . get_term_link( $term ) . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'), $term->name) . '">' . $term->name . '</a>';
+
     $term_list .= '<a href="' . get_term_link( $term ) . '"';
     if ($count != $i) $term_list .= ' &amp;middot; '; else $term_list .= '</p>';
+
        $term_list .= ' title="' . sprintf( __('View all post filed under %s', 'my_localization_domain' ), $term->name ) . '">';
 +
    $term_list .= $term->name . '</a>';
 +
     if ( $count != $i ) {
 +
            $term_list .= ' &amp;middot; ';
 +
        }
 +
        else {
 +
            $term_list .= '</p>';
 +
        }
 
     }
 
     }
 
     echo $term_list;
 
     echo $term_list;
}</pre>
+
}
 +
</pre>
  
==Details==
+
<div id="Details">
 +
== フィルター ==
 +
</div>
  
You can inject any customizations to the query before it is sent or control the output with filters.
+
クエリを実行せず結果を出力する時と、実行後の結果出力時に、フィルターを使ってカスタマイズを仕込むことができます。
  
The 'get_terms' filter will be called when the cache has the term and will pass the found term along with the array of $taxonomies and array of $args.
+
'get_terms' フィルターは、タームがキャッシュにあるときに実行されます。見つかったタームと $taxonomies の配列と $args の配列が渡されます。
+
This filter is also called before the array of terms is passed and will pass the array of terms, along with the $taxonomies and $args.
+
  
The 'list_terms_exclusions' filter passes the compiled exclusions along with the $args.
+
新たに検索して見つかったタームを返す前にも、同じフィルターが実行されます。タームの配列と $taxonomies と $args が渡されます。
  
== Source File ==
+
'list_terms_exclusions' フィルターには、タームを除外するためのクエリの一部(<tt>NOT IN</tt> 句)と $taxonomies と $args が渡されます。
<!-- Need links to current source code files -->
+
<tt>get_terms()</tt> is located in {{Trac|wp-includes/taxonomy.php}}.
+
  
==Related==
+
<div id="Change Log">
 +
== 変更履歴 ==
 +
</div>
 +
* [[Version 4.2|4.2]] : 引数 <tt>childless</tt> を追加。
 +
* [[Version 2.3|2.3]] : 新規導入。
 +
 
 +
<div id="Source File">
 +
== ソースファイル ==
 +
</div>
 +
<tt>get_terms()</tt> は {{Trac|wp-includes/taxonomy.php}} にあります。
 +
 
 +
<div id="Related">
 +
== 関連項目 ==
 +
</div>
 
{{Term Tags}}
 
{{Term Tags}}
  
== Resources ==
+
<!-- == Resources == -->
 +
{{Tag Footer}}
  
[[Category:Functions]]
+
{{原文|Function Reference/get_terms|151083}} <!-- 20:03, 23 April 2015 TheMikeD 版 -->
[[Category:Taxonomies]]
+
  
{{原文|Function Reference/get terms|137425}}<!-- 22:21, October 27, 2013 Djkaz 版 -->
+
{{DEFAULTSORT:Get_terms}}
 +
[[Category:関数]]
 +
[[Category:タクソノミー]]
  
{{Tag Footer}}
+
[[en:Function Reference/get_terms]]

2018年2月21日 (水) 23:47時点における最新版

指定されたタクソノミー(カスタム分類)またはタクソノミーのリストについて、それに含まれるタームを取得します。

タームのオブジェクトの配列を返します。 もしタクソノミーの何れかが存在しなければ WP_Error オブジェクトを返します。

使い方

<?php $terms = get_terms( $taxonomies, $args ); ?>

デフォルトの使い方

<?php 
// タクソノミーにはデフォルト値がないので下記を例として使う。
$taxonomies = array( 
    'post_tag',
    'my_tax',
);

$args = array(
    'orderby'       => 'name', 
    'order'         => 'ASC',
    'hide_empty'    => true, 
    'exclude'       => array(), 
    'exclude_tree'  => array(), 
    'include'       => array(),
    'number'        => '', 
    'fields'        => 'all', 
    'slug'          => '', 
    'parent'        => '',
    'hierarchical'  => true, 
    'child_of'      => 0, 
    'childless'     => false,
    'get'           => '', 
    'name__like'    => '',
    'description__like' => '',
    'pad_counts'    => false, 
    'offset'        => '', 
    'search'        => '', 
    'cache_domain'  => 'core'
); 

$terms = get_terms( $taxonomies, $args );
?>

パラメータ

$taxonomies
文字列|配列) (必須) タームを取得するタクソノミー。(参考:デフォルト分類
初期値: なし
$args
文字列|配列) (オプション) 戻り値の種類を変更。
初期値: 下記の指定できる引数を参照。

指定できる引数

orderby 
(文字列) ソートするフィールド。
  • id
  • count
  • name - デフォルト
  • slug
  • term_group - 実装が充分ではない(利用を避けること)
  • none
order 
(文字列) ソートする方向。
  • ASC - デフォルト(昇順)
  • DESC
hide_empty 
(真偽値) 空の(投稿などのオブジェクトに付けられていない)タームを返しません
  • 1 (true) - デフォルト(空のタームを出力しない)
  • 0 (false)
exclude 
(整数|文字列|配列) 除外するタームの ID の配列。ID をコンマで区切って文字列として指定することもできます。
exclude_tree 
(整数) 除外する親タームの ID の配列。
include 
(整数) 含めるタームの ID の配列。空文字列を指定するとすべてのタームを対象にします。
number 
(整数) 返すタームの最大個数。デフォルトではすべてのタームを返します。
fields 
(文字列)
  • all - タームオブジェクトの配列を返す - デフォルト
  • ids - 整数(ターム ID)の配列を返す
  • names - 文字列(ターム名)の配列を返す
  • count - (バージョン 3.2 以上)見つかったタームの個数を返す
  • id=>parent - 連想配列を返す。キーはターム ID、値は親タームの ID またはゼロ(親がない場合)
  • id=>slug - 連想配列を返す。キーはターム ID、値はスラッグ
  • id=>name - 連想配列を返す。キーはターム ID、値はターム名
slug 
(文字列|配列) 指定した値がスラッグに一致するタームを返す。デフォルトは空文字列。
parent 
(整数) 直近の子タームを返す(指定された値が親タームの ID であるタームのみ)。ゼロを指定するとトップレベルのタームのみを返す。デフォルトは空文字列。
hierarchical 
(真偽値) 子タームを持つタームを含める( 'hide_empty' が true のときでも)。
  • 1 (true) - デフォルト
  • 0 (false)
child_of 
(整数) 指定したタームの子孫をすべて取得します。デフォルトは 0 です。参考: child_ofparent の違いは、parent が直近の子ターム(1 レベル下)のみを取得するのに対して、child_ofすべての子孫タームを取得します(存在するレベルすべて)。
childless 
(真偽値) タクソノミーが階層有りの場合、子を持たないタームのみを返します。階層無しの場合、すべてのタームを対象とします。(バージョン 4.2 で追加されました。)
get 
(文字列) デフォルトは空文字列です。この値を 'all' にすると 'hide_empty' と 'child_of' が無効になります(すべてのタームを取得します)。
name__like 
(文字列) ターム名にマッチさせたい文字列。ターム名に対してのみ、データベースクエリの LIKE '%string%' を実行します。これは名前に 'name__like' の文字列を含むタームにマッチします。参考:これは WordPress 3.7 からの仕様です。以前は name__like の文字列で始まる名前のタームにマッチしていました。チケット #8214 を参照してください。
description__like 
(文字列) タームの説明に 'description__like' の文字列を含む(大文字小文字を区別して)タームを返します。デフォルトは空文字列です。説明に対してのみ、データベースクエリの LIKE '%string%' を実行します。これは説明に 'description__like' の文字列を含むタームにマッチします。
pad_counts 
(真偽値) true のとき、子孫タームすべてのカウント(投稿などのオブジェクトに付けられている回数)を合計します。
  • 1 (true)
  • 0 (false) - デフォルト
offset 
(整数) 見つかったタームの先頭から指定の個数を読み飛ばして返します。必ず 'number' と一緒に使ってください。そうしないと 'offset' は無視されて結果すべてが返されます。
search 
(文字列) ターム名にマッチさせたい文字列。ターム名とスラッグに対して、データベースクエリの LIKE '%search_string%' を実行します。これは 'search_string' の文字列を含むタームにマッチします。
cache_domain 
(文字列) バージョン 3.2 以上で使えます。'cache_domain' 引数は、get_terms() が作成したクエリにユニークなキャッシュ用キーを付与できます。例えば、この関数のフィルターを使ってクエリを変更するとき(例えば 'terms_clauses')、'cache_domain' にユニークな値を指定しておけば、キャッシュにある同様のクエリを上書きせず残しておけます。デフォルト値は 'core' です。

参考:引数は wp_parse_args() で使われる形式で与えます。

戻り値

(配列|文字列|WP_Error) 
タームオブジェクトの配列。タームが見つからなければ空の配列を返します。$taxonomies の何れかが存在しなければ WP_Error を返します。'fields' 引数が 'count' の時は、見つかったタームの個数を文字列形式で返します。

返されるフィールドは以下のとおり:

  • term_id (下記の「注意」を参照)
  • name
  • slug
  • term_group
  • term_taxonomy_id
  • taxonomy
  • description
  • parent
  • count

注意:文字列と整数の混同について! フィールドの値は term_id も含めて文字列形式で返されます。それを使う前に、値が数値なら本物の整数に型変換してください。そうしないと WordPress は、ターム ID と、数字だけから成るスラッグを混同してしまいます!

すべての投稿のカテゴリーをカウント(投稿に付けられている回数)でソートして取得します。

文字列形式の引数:

$categories = get_terms( 'category', 'orderby=count&hide_empty=0' );

配列形式の引数:

 $categories = get_terms( 'category', array(
 	'orderby'    => 'count',
 	'hide_empty' => 0
 ) );

リンクのカテゴリーをすべて取得します:

$mylinks_categories = get_terms( 'link_category', 'orderby=count&hide_empty=0' );

カスタム分類のタームをすべてリストします。リンクは付けません:

 $terms = get_terms( 'my_taxonomy' );
 if ( ! empty( $terms ) && !is_wp_error( $terms ) ){
     echo '<ul>';
     foreach ( $terms as $term ) {
         echo '<li>' . $term->name . '</li>';
     }
     echo '</ul>';
 }

すべてのタームを取得して、タームのアーカイブへのリンクを付け、中黒 (·) で区切って表示します:

$args = array( 'hide_empty=0' );

$terms = get_terms( 'my_term', $args );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    $count = count( $terms );
    $i = 0;
    $term_list = '<p class="my_term-archive">';
    foreach ($terms as $term ) {
        $i++;
    	$term_list .= '<a href="' . get_term_link( $term ) . '"';
        $term_list .= ' title="' . sprintf( __('View all post filed under %s', 'my_localization_domain' ), $term->name ) . '">';
    	$term_list .= $term->name . '</a>';
    	if ( $count != $i ) {
            $term_list .= ' &middot; ';
        }
        else {
            $term_list .= '</p>';
        }
    }
    echo $term_list;
}

フィルター

クエリを実行せず結果を出力する時と、実行後の結果出力時に、フィルターを使ってカスタマイズを仕込むことができます。

'get_terms' フィルターは、タームがキャッシュにあるときに実行されます。見つかったタームと $taxonomies の配列と $args の配列が渡されます。

新たに検索して見つかったタームを返す前にも、同じフィルターが実行されます。タームの配列と $taxonomies と $args が渡されます。

'list_terms_exclusions' フィルターには、タームを除外するためのクエリの一部(NOT IN 句)と $taxonomies と $args が渡されます。

変更履歴

  • 4.2 : 引数 childless を追加。
  • 2.3 : 新規導入。

ソースファイル

get_terms()wp-includes/taxonomy.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_terms最新版との差分