我有一个CPT和post类型的‘食谱’。我在CPT中有几个ACF高级自定义字段。
我的循环在编写如下代码时正确工作:
-1,
'order' => 'ASC',
'orderby' => 'name',
'post_type' => 'recipe'
);
// query
$recipe_query = new WP_Query( $args );
?>
have_posts() ): ?>
have_posts() ) : $recipe_query->the_post(); ?>“食谱”CPT有一个ACF字段(字段类型: select),名为“field”,它有几个值,如“素食”、“素食”、“无糖”等等。(大多数菜谱都选择了多个值。)
当我向$args数组添加参数以尝试只显示具有一种特殊饮食类型的帖子时,循环将不返回任何内容:
// args
$args = array(
'numberposts' => -1,
'order' => 'ASC',
'orderby' => 'name',
'post_type' => 'recipe',
'meta_key' => 'special_diets',
'meta_value' => 'vegan'
);我也尝试过添加一个meta_compare,使用“IN”和“=”
// args
$args = array(
'numberposts' => -1,
'order' => 'ASC',
'orderby' => 'name',
'post_type' => 'recipe',
'meta_key' => 'special_diets',
'meta_value' => 'vegan',
'meta_compare' => 'IN'
);但是,只要我添加'meta_key‘,循环就什么也不返回(也不返回错误消息)。我已经仔细检查了字段名'special_diets‘是否正确。
怎么了?
此代码:
返回:
array(7) {
[0]=>
string(10) "sugar-free"
[1]=>
string(11) "gluten-free"
[2]=>
string(8) "egg-free"
[3]=>
string(10) "dairy-free"
[4]=>
string(10) "vegetarian"
[5]=>
string(5) "vegan"
[6]=>
string(17) "diabetic-friendly"
}发布于 2019-06-19 22:40:49
您需要在您的meta_query中添加一个相似的
$args = array(
'post_type'=> 'recipe',
'meta_query' => array(
array(
'key' => 'special_diets',
'value' => 'vegan',
'compare' => 'LIKE',
)
),
);
$query = new WP_Query($args);正如这里所解释的,计算具有特定元值的自定义post类型
https://wordpress.stackexchange.com/questions/340971
复制相似问题