ACF 字段的 WP 查询过滤器不起作用

Posted

技术标签:

【中文标题】ACF 字段的 WP 查询过滤器不起作用【英文标题】:WP Query filter by ACF field don't work 【发布时间】:2018-06-29 17:58:34 【问题描述】:

我遇到了由 ACF Post Object Field 过滤的 WP 查询的问题。 我必须查询由“作者”acf 字段过滤的“帖子”。 我正在使用此代码,但这不起作用

$post_type_query  = new WP_Query(
    array (  
        'post_type'      => 'post',                 
        'posts_per_page' => 3,
        'meta_query' => array(
            array(
                'key' => 'author',
                'value' => 'prova'
                )
            )
        ) 
    ); 

wordpress 上有一篇文章,作者为“prova”,但查询返回空。 我不明白为什么

谢谢

【问题讨论】:

看起来您缺少元查询的关系部分。比如'meta_query' => array('relation' => '=', array...codex.wordpress.org/Class_Reference/WP_Meta_Query 感谢您的回答。我试过 'meta_query' => array( 'relation' => '=', array( 'key' => 'author', 'value' => 'prova' ) ) 和 'meta_query' => array( array( ' key' => 'author', 'compare' => '=', 'value' => 'prova' ) ) 但还是不行 你的第二个例子应该是有效的。有时 WP_Query 可能会被插件搞砸。你碰巧安装了 relevanassi 吗?否则,我可以帮助您绕过 sql 查询 【参考方案1】:

试试这个:

$postData = new WP_Query(array(  
        'post_type' => 'post',                 
        'posts_per_page' => 3,
        'post_status' => 'publish',
        'meta_query' => array(
            array(
                'key' => 'author',
                'value' => 'prova',
                'compare' => '='   // or if you want like then use 'compare' => 'LIKE'
                )
            )
        ) 
    ); 

if($postData->have_posts()):
    while ($postData->have_posts()): $postData->the_post();
        echo "Post Title";
        the_title();
        echo '<div class="entry-content">';
        the_content();
        echo '</div>';  
    endwhile;
endif;

【讨论】:

以上是关于ACF 字段的 WP 查询过滤器不起作用的主要内容,如果未能解决你的问题,请参考以下文章

通过特定的自定义字段订购 WP 查询,不起作用

中继器中的 ACF 图像不起作用

当查询字段为objectId时,geoNear聚合是不是不起作用?

Wp查询日期之间的帖子,但任何年份

wp查询分页和类别

按自定义字段过滤帖子 - url 正确更新但过滤不起作用