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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(関連項目)
(用例: WordPress日本語フォーラム http://ja.forums.wordpress.org/topic/139947 から転載。)
2行目: 2行目:
 
== 説明 ==
 
== 説明 ==
 
</div>
 
</div>
 +
 
指定されたターム(複数でもよい)が付いているオブジェクトの ID を取得します。
 
指定されたターム(複数でもよい)が付いているオブジェクトの ID を取得します。
 
タームは、指定されたタクソノミーのタームとします。
 
タームは、指定されたタクソノミーのタームとします。
  
 
<tt>$taxonomies</tt> の文字列は、この関数を実行する前に登録済みでなければなりません。
 
<tt>$taxonomies</tt> の文字列は、この関数を実行する前に登録済みでなければなりません。
有効なタクソノミーが見つからなければ WP_Error を返します。
+
有効なタクソノミーが見つからなければ [[クラスリファレンス/WP_Error|WP_Error]] を返します。
 
WP_Error は PHP 5 の例外のようなものですが、WordPress ではキャッチ処理ができません。
 
WP_Error は PHP 5 の例外のようなものですが、WordPress ではキャッチ処理ができません。
 
しかし WP_Error が返されたかチェックしてエラーメッセージを取得できます。
 
しかし WP_Error が返されたかチェックしてエラーメッセージを取得できます。
20行目: 21行目:
 
== 使い方 ==
 
== 使い方 ==
 
</div>
 
</div>
 +
 
  <?php get_objects_in_term( $term_ids, $taxonomies, $args ) ?>
 
  <?php get_objects_in_term( $term_ids, $taxonomies, $args ) ?>
  
25行目: 27行目:
 
== パラメータ ==
 
== パラメータ ==
 
</div>
 
</div>
 +
 
{{Parameter|$term_ids|整数&#124;配列|タームの ID、またはターム ID の配列。}}
 
{{Parameter|$term_ids|整数&#124;配列|タームの ID、またはターム ID の配列。}}
{{Parameter|$taxonomies|文字列&#124;配列|タクソノミー名の文字列、またはタクソノミー名の文字列を要素とする配列。}}
+
{{Parameter|$taxonomies|文字列&#124;配列|タクソノミーのスラッグ、またはタクソノミーのスラッグを要素とする配列。}}
{{Parameter|$args|配列&#124;文字列|戻り値の種類を指定。|オプション|array()}}
+
{{Parameter|$args|配列&#124;文字列|戻り値の種類を指定。|オプション|<code>array()</code>}}
  
 
<div id="Possible Arguments">
 
<div id="Possible Arguments">
 
=== 指定可能な引数 ===
 
=== 指定可能な引数 ===
 
</div>
 
</div>
 +
 
; order : (''文字列'')
 
; order : (''文字列'')
 
:* <tt>ASC</tt> - デフォルト:昇順にソートする。
 
:* <tt>ASC</tt> - デフォルト:昇順にソートする。
42行目: 46行目:
 
== 戻り値 ==
 
== 戻り値 ==
 
</div>
 
</div>
; (WP_Error&#124;配列) : タクソノミーが存在しなければ WP_Error を返す。オブジェクトが一つも見つからなければ空の配列を返す。見つかればオブジェクト ID の配列を返す。
+
 
 +
; (WP_Error&#124;配列) : タクソノミーが存在しなければ [[クラスリファレンス/WP_Error|WP_Error]] を返す。オブジェクトが一つも見つからなければ空の配列を返す。見つかればオブジェクト ID の配列を返す。
  
 
'''参考''': 一つのオブジェクトに、$term_ids に与えたタームの 2 つ以上が付いていると、オブジェクト ID が重複して含まれる結果になります。
 
'''参考''': 一つのオブジェクトに、$term_ids に与えたタームの 2 つ以上が付いていると、オブジェクト ID が重複して含まれる結果になります。
  
 
<div id="Examples">
 
<div id="Examples">
== ==
+
== 用例 ==
 
</div>
 
</div>
<!-- Need creative examples. Feel free to link to external examples. -->
+
 
{{募集中||クリエイティブな例を求めています。外部サイトへのリンクでも構いません。|情報}}
+
カテゴリーアーカイブページにて、現在のカテゴリーの投稿に付いているタグの一覧を表示します。<!-- http://ja.forums.wordpress.org/topic/139947 より転載。 30-Sep-2014 gblsm -->
 +
 
 +
<pre>
 +
<?php
 +
if ( is_category() ) {
 +
    // 現在のカテゴリーのIDを取得
 +
    $cat_id = get_query_var( 'cat' );
 +
    // 表示中のカテゴリーに属する投稿のIDを配列で取得
 +
    $current_posts = get_objects_in_term( $cat_id, 'category' );
 +
    // 表示中のカテゴリーに属する投稿に付けられたタグの情報をまとめて取得
 +
    $current_tags = wp_get_object_terms( $current_posts, 'post_tag' );
 +
    if ( $current_tags ) {
 +
        echo 'このカテゴリーの投稿に付いているタグの一覧:<ul>' . "\n";
 +
        foreach ( $current_tags as $tag )
 +
            echo '<li>' . $tag->name . '</li>' . "\n";
 +
        echo '</ul>';
 +
    }
 +
}
 +
?>
 +
</pre>
 +
 
  
 
<div id="Notes">
 
<div id="Notes">
 
== 参考 ==
 
== 参考 ==
 
</div>
 
</div>
 +
 
* [[関数リファレンス/wp_parse_args|<tt>wp_parse_args()</tt>]] 関数を使って、文字列形式の <tt>$args</tt> を配列に変換します。
 
* [[関数リファレンス/wp_parse_args|<tt>wp_parse_args()</tt>]] 関数を使って、文字列形式の <tt>$args</tt> を配列に変換します。
 
* グローバル変数 (<tt>object</tt>) [[クラスリファレンス/wpdb|<tt>$wpdb</tt>]] を使用します。
 
* グローバル変数 (<tt>object</tt>) [[クラスリファレンス/wpdb|<tt>$wpdb</tt>]] を使用します。
61行目: 87行目:
 
== 変更履歴 ==
 
== 変更履歴 ==
 
</div>
 
</div>
 +
 
バージョン [[Version 2.3|2.3.0]] にて導入されました。
 
バージョン [[Version 2.3|2.3.0]] にて導入されました。
  
66行目: 93行目:
 
== ソースファイル ==
 
== ソースファイル ==
 
</div>
 
</div>
 +
 
<tt>get_objects_in_term()</tt> は {{Trac|/wp-includes/taxonomy.php}} にあります。
 
<tt>get_objects_in_term()</tt> は {{Trac|/wp-includes/taxonomy.php}} にあります。
  
 
<div id="Related">
 
<div id="Related">
== 関連項目 ==
+
== 関連資料 ==
 
</div>
 
</div>
 
{{Term Tags}}
 
{{Term Tags}}

2014年9月30日 (火) 18:34時点における版

指定されたターム(複数でもよい)が付いているオブジェクトの ID を取得します。 タームは、指定されたタクソノミーのタームとします。

$taxonomies の文字列は、この関数を実行する前に登録済みでなければなりません。 有効なタクソノミーが見つからなければ WP_Error を返します。 WP_Error は PHP 5 の例外のようなものですが、WordPress ではキャッチ処理ができません。 しかし WP_Error が返されたかチェックしてエラーメッセージを取得できます。

$term_ids$taxonomies のようにはチェックされません。 しかしオブジェクトの ID を取得する為には予め存在していなければなりません。

返されるオブジェクト ID の順序を変更できます。 PHP のソート系の関数を使用するか、または $args に ASC か DESC を与えます。 ASC と DESC は、キー 'order' に指定します。

使い方

<?php get_objects_in_term( $term_ids, $taxonomies, $args ) ?>

パラメータ

$term_ids
整数|配列) (必須) タームの ID、またはターム ID の配列。
初期値: なし
$taxonomies
文字列|配列) (必須) タクソノミーのスラッグ、またはタクソノミーのスラッグを要素とする配列。
初期値: なし
$args
配列|文字列) (オプション) 戻り値の種類を指定。
初期値: array()

指定可能な引数

order 
(文字列)
  • ASC - デフォルト:昇順にソートする。
  • DESC :降順にソートする。

参考: 引数は wp_parse_args() 関数が使用する形式で与えます。

戻り値

(WP_Error|配列) 
タクソノミーが存在しなければ WP_Error を返す。オブジェクトが一つも見つからなければ空の配列を返す。見つかればオブジェクト ID の配列を返す。

参考: 一つのオブジェクトに、$term_ids に与えたタームの 2 つ以上が付いていると、オブジェクト ID が重複して含まれる結果になります。

用例

カテゴリーアーカイブページにて、現在のカテゴリーの投稿に付いているタグの一覧を表示します。

<?php
if ( is_category() ) {
    // 現在のカテゴリーのIDを取得
    $cat_id = get_query_var( 'cat' );
    // 表示中のカテゴリーに属する投稿のIDを配列で取得
    $current_posts = get_objects_in_term( $cat_id, 'category' );
    // 表示中のカテゴリーに属する投稿に付けられたタグの情報をまとめて取得
    $current_tags = wp_get_object_terms( $current_posts, 'post_tag' );
    if ( $current_tags ) {
        echo 'このカテゴリーの投稿に付いているタグの一覧:<ul>' . "\n";
        foreach ( $current_tags as $tag )
            echo '<li>' . $tag->name . '</li>' . "\n";
        echo '</ul>';
    }
}
?>


参考

  • wp_parse_args() 関数を使って、文字列形式の $args を配列に変換します。
  • グローバル変数 (object) $wpdb を使用します。

変更履歴

バージョン 2.3.0 にて導入されました。

ソースファイル

get_objects_in_term()/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 objects in term最新版との差分