为什么 get_posts() 有效但 WP_Query( $args ) 无效?

问题描述 投票:0回答:1

我有以下 WordPress 代码片段:

$args = array(
    'posts_per_page'    => 1, // for safety, set the return value as 1 record
    'post_type'         => 'fs_ski_resorts',
    'meta_key'          => 'osm_geometry',
    'meta_value'        => $osm_geometry 
);

如果我运行 dump $query = get_posts($args);我相信这是一个 ACF 函数,我按照预期得到了查询的帖子的值,如 ID、标题等。

另一方面,如果我运行 $query = new WP_Query( $args );找到零个帖子 ([p]=>0)

我是不是误会了什么?非常感谢任何指点。为什么找不到帖子?

作为信息,$osm_geometry 的值始终类似于“way/123456”;

wordpress advanced-custom-fields
1个回答
0
投票

所以

get_posts()
是更基本的内置wordpress功能(不是ACF)。 另一方面,使用
WP_Query
你可以更具体,它会返回更多。

您可以这样查询:

    $args2 = array(
        'posts_per_page'    => 1, // for safety, set the return value as 1 record
        'post_type'         => 'page',
        'meta_query' => array(
            array(
            'key' => 'osm_geometry',
            'value' => $osm_geometry,
            'compare' => 'AND',
        ))
    );

https://developer.wordpress.org/reference/classes/wp_query/

https://developer.wordpress.org/reference/functions/get_posts/

最后,如果您希望从 ACF 中获取字段,这可能就是您查看内部的原因

post_meta
您应该查看 ACF 的
get_fields()
函数。 https://www.advancedcustomfields.com/resources/get_fields/

如果您需要更多帮助,请随意发布您返回的内容(格式正确):

    echo '<pre>';
    var_dump($query);
    echo '</pre>';
© www.soinside.com 2019 - 2024. All rights reserved.