似乎在网上找不到答案,所以我在这里尝试。。。
我正在运行一个自定义查询,返回与特定成分匹配的所有配方(此处使用自定义分类法)。
$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”,因为这两个是查询中要求的,并且与该配方的配料相匹配。
谁能帮帮我吗?我完全不知道从哪里开始。
谢谢
最合适的回答,由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);