我有以下 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”;
所以
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>';