首页 文章

在wordpress中使用mysql自定义查询获取WP_Query对象

提问于
浏览
1

我有一个自定义的mysql查询

$ search_query_location =“SELECT wp_posts . * FROM wp_postmeta wher post_id IN(112233,445566,77441,145,254)”;

我可以运行上面的查询来获取带有“wpdb”函数的数据

$wpdb->get_results($search_query_location, OBJECT);

它返回像post一样的帖子

排列

(
    [0] => stdClass Object
        (
            [ID] => 11923
            [post_author] => 1
            [post_date] => 2015-06-23 08:05:30
         )
)

但是我需要

WP_Query Object返回“new WP_Query”函数

WP_Query Object
(
    [query] => Array
        ()
     [posts] =Array ()
)

如果我使用WP_Query以及参数 post__inposts_per_page ,那么结果是 WP_Query Object ,默认排序顺序(即post id)但是我需要在我的自定义查询中定义的排序顺序是(112233,445566,77441,145,254) posts ids如何使用自定义mysql查询获取 WP_Query Object

1 回答

  • 1

    orderby 参数接受 post__in 排序值作为对返回的帖子进行排序的可能方式 . 将 orderby 设置为 post__in ,将按照输入 post__in 参数的顺序返回帖子 .

    以下代码

    $args = [
        'post__in' =>[3, 1, 2],
        'orderby' => 'post__in'
    ];
    
    $q = new WP_Query( $args );
    

    将按以下顺序返回帖子1,2和3

    3,1,2

相关问题