如何列出符合定制查询的分类术语?

时间:2017-06-13 作者:bery54

似乎在网上找不到答案,所以我在这里尝试。。。

我正在运行一个自定义查询,返回与特定成分匹配的所有配方(此处使用自定义分类法)。

$ingredients = array(\'poulet\', \'oignon\', \'piment\', \'tomate\');
$type = \'souper\';

$args = array(
  \'post_type\'    => \'recipe\',
  \'tax_query\' => array(
    array(
        \'taxonomy\' => \'main_ingredient\',
        \'field\'    => \'slug\',
        \'terms\'    => $ingredients,
        \'operator\' => \'IN\'
    )
  ),
);
$the_query = new WP_Query( $args );
然后,我需要做的是,为每个食谱列出该食谱的所有成分。

例如,如果一个配方中有“poulet”、“champignon”、“lait”和“tomate”作为配料,我希望看到一个简单的ul/li列表,其中包括“poulet”和“tomate”,因为这两个是查询中要求的,并且与该配方的配料相匹配。

谁能帮帮我吗?我完全不知道从哪里开始。

谢谢

1 个回复
最合适的回答,由SO网友:Picard 整理而成

获取此配方的指定术语(配方具有$recipe_id):

$terms_arr = [];
$terms_objs = get_the_terms($recipe_id, \'main_ingredient\');
if ($terms_objs) {
    foreach ($terms_objs as $term_obj) {
        $terms_arr[] = $term_obj->slug;
    }
}
查找两个数组中的术语:

$the_ingrediens = array_intersect($ingredients, $terms_arr);

结束

相关推荐