ACF元密钥和元值中断循环

时间:2019-06-19 作者:hommealone

我有一个帖子类型为“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"
}

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

您需要在meta\\u查询中添加LIKE

$args = array(
    \'post_type\'=> \'recipe\',
    \'meta_query\' => array(
                     array(
                        \'key\'     => \'special_diets\',
                        \'value\'   => \'vegan\',
                        \'compare\' => \'LIKE\',
                    )
                ),
);
$query = new WP_Query($args);
如此处所述Count custom post types with a specific meta value

相关推荐

The Loop not looping?

在进行了大量的故障排除和搜索之后,我想我终于明白了如何进行循环。但我似乎无法让它真正循环!我创建了一个子主题,并添加了functions.php 文件中包含以下代码:<?php function my_theme_enqueue_styles() { $parent_style = \'grow-thinkup-style-minimal\'; // This is \'twentyfifteen-style\' for the Twenty Fifteen the