0

2つの分類法があり、一方の分類法の用語のリストをもう一方に基づいて作成する必要があります。

タクソノミー1-Auto_Brand

分類法2-都市

使用できることはわかって$terms = get_terms("auto_brands"); or $terms = get_terms("city");,いますが、auto_brandがアタッチされている都市のみを取得するコードを構造化するにはどうすればよいですか?

4

1 に答える 1

0

タクソノミーは、他のタクソノミーと直接相互作用しません。それらは、投稿オブジェクトと相互作用し、カプセル化するだけです。これを行うために私が考えることができる唯一の方法は、WP_Queryを使用してタクソノミークエリを実行し、両方のタクソノミーを利用するすべての投稿を収集し、各投稿をループして一意の用語の配列を作成することです。

$args = array(
    'post_type' => 'post',
    'tax_query' => array(
        'relation' => 'AND',
        array('taxonomy' => 'auto_brand'),
        array('taxonomy' => 'city')
    )
);
$q = new WP_Query($args); //Get the posts

$found_terms = array(); //Initialize Empty Array
$taxonomies = array('auto_brand', 'city'); //Taxonomies we're checking
$args = array('fields'=>'names'); //Get only the names
foreach($q->posts as $t_post) //Begin looping through all found posts
{
    $post_terms = wp_get_post_terms($t_post->ID, $taxonomies, $args);
    $found_terms = array_merge($found_terms, $post_terms); //Build Terms array
}
$unique_terms = array_unique($found_terms); //Filter duplicates

これはテストされていませんが、正しい方向に進むことができるはずです。

于 2013-01-10T02:23:53.003 に答える