web-dev-qa-db-ja.com

用語IDの配列を抽出するためのWordPressの組み込みメソッド

私は、その投稿と分類法のすべての用語のリストを取得することを望んで、その投稿のためのカスタム分類法を問い合わせています。 get_the_terms($post_id, $taxonomy)は動作しますが、次のコードを実行する前に余分な構文解析が必要になる、このような不注意なtermオブジェクトの配列を提供します。

if (in_array($list_of_term_ids, $my_term_id)){ do good stuff... }

自分の効用関数をロールする前に、誰かがネイティブなWP関数やterm idをフラットリストに抽出する方法に遭遇したかどうかを探しています。

1
Tom Auger

まあ、私はそれを見て、最初の議論によって捨てられました、しかしそれはまさに必要なことをします。 wp-includes/taxonomy.phpから:

function wp_get_object_terms($object_ids, $taxonomies, $args = array())

そして私が望んだようにそれを使うために、一致するIDのフラットリストを与えて、 'fields' => 'ids'を$ argsにプッシュします。

wp_get_object_terms($post_id, TAXONOMY_NAME, array('fields'=>'ids'));

0
Tom Auger

私はあなたが長い間これを解決したことを知っていますが、別の解決策を提供したいと思いました。私が別の質問に答えていたとき、この質問は「関連している」と現れました。

WordPress関数wp_list_pluckを使用して、関数に送信された配列またはオブジェクトのフィールドの1つとして値を持つ配列を返すことができます。言い換えれば、関数にオブジェクトを送って戻りたいフィールドを指定すれば、そのフィールドだけを持つ配列が得られます。

たとえば、次のようなことができます。

$ids = wp_list_pluck(get_terms('category', 'hide_empty=0'), 'term_id'));

$idsは、あなたが捕らえたいと思う言葉の配列です。

5
tollmanz