如何在WordPress中获取自定义帖子ID

vwkv1x7d  于 2024-01-06  发布在  WordPress
关注(0)|答案(1)|浏览(223)

我试图查询WordPress的一个特定的自定义后的基础上Meta_key和meta_value如下:

$args = array(
            'post_type'      => 'fs_park',
            //'post_status'    => 'publish',
            'posts_per_page' => 1,
            'meta_query'     => array(
                array(
                    'key'     => 'osm_geometry',
                    'value'   => $osm_geometry,
                    'compare' => '=',
                ),
            ),
        );
        
        $my_query->query($args);

字符串
如果我print_r($my_query),我可以看到我想要的帖子ID,如下所示:

WP_Query Object
(
    ...
    [posts] => Array
        (
            [0] => WP_Post Object
                (
                    [ID] => 1074
                    ...
                 )
        )
)


是否有任何WordPress的功能/方法来访问ID,但不是在一个循环?
感谢你的帮助.

ldfqzlk8

ldfqzlk81#

您可以直接访问数组的第一个结果的ID,无需循环即可获得查询结果的ID

$postID = $my_query->posts[0]->ID ?? null;

字符串
但如果你想减少查询的开销,只需使用全局$wpdbget_var方法在posts_Meta表中直接执行SQL查询;

global $wpdb;

$postID = $wpdb->get_var( $wpdb->prepare(
    "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = %s AND meta_value = %s",
    'osm_geometry', $osm_geometry
));


这直接给予你包含Meta_key osm_geometry的post_ID和你传递给$osm_geometry的值,
如果有超过1篇文章包含相同的值,您将获得第一个结果的ID

相关问题