我有一个帖子类型为“recipe”的CPT。我在CPT中有几个ACF高级自定义字段。
我的循环按以下方式编写时工作正常:
<?php
// args
$args = array(
\'numberposts\' => -1,
\'order\' => \'ASC\',
\'orderby\' => \'name\',
\'post_type\' => \'recipe\'
);
// query
$recipe_query = new WP_Query( $args );
?>
<?php if( $recipe_query->have_posts() ): ?>
<?php while( $recipe_query->have_posts() ) : $recipe_query->the_post(); ?>
<?php get_template_part( \'template-parts/content\', \'recipe\' ); ?>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); // Restore global post data stomped by the_post().
?>
“recipe”CPT有一个名为“special\\u diets”的ACF字段(字段类型:select),其中有几个值,如“vegan”、“Ventate”、“sugar free”等。该字段中允许多个选择。(大多数配方都选择了多个值。)
当我向$args数组添加参数以尝试仅显示具有一种特殊饮食类型的帖子时,循环不会返回任何结果:
// args
$args = array(
\'numberposts\' => -1,
\'order\' => \'ASC\',
\'orderby\' => \'name\',
\'post_type\' => \'recipe\',
\'meta_key\' => \'special_diets\',
\'meta_value\' => \'vegan\'
);
我也尝试过添加meta\\u比较,使用“IN”并尝试“=”
// args
$args = array(
\'numberposts\' => -1,
\'order\' => \'ASC\',
\'orderby\' => \'name\',
\'post_type\' => \'recipe\',
\'meta_key\' => \'special_diets\',
\'meta_value\' => \'vegan\',
\'meta_compare\' => \'IN\'
);
但只要我添加了“meta\\u键”,循环就不会返回任何信息(也不会返回错误消息)。我反复检查了字段名“special\\u diets”是否正确。
What\'s wrong?
此代码:
<pre>
<?php
var_dump(get_field(\'special_diets\'));
?>
</pre>
返回值:
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"
}