Php WordPress将原始SQL查询转换为WP_查询

Php WordPress将原始SQL查询转换为WP_查询,php,wordpress,Php,Wordpress,我目前正在制作一个插件,需要一些关于某个主题的帮助。我想使用所有的循环,但需要一个原始的sql查询 /** * Get all the posts neccessarry * return array<WP_Post> returns an array of all constructed WP_Posts */ public static function get_posts($o){ global $wpdb; $posts = array();

我目前正在制作一个插件,需要一些关于某个主题的帮助。我想使用所有的循环,但需要一个原始的sql查询

/**
 * Get all the posts neccessarry
 * return array<WP_Post> returns an array of all constructed WP_Posts
 */
public static function get_posts($o){
    global $wpdb;
    $posts = array();

    $tax= $o['tax'];

    $q=$wpdb->get_results(
        "SELECT * FROM {$wpdb->posts} p
         LEFT OUTER JOIN 
            (SELECT * FROM {$wpdb->postmeta} 
            WHERE meta_key='/$p/_faq_prio' 
            GROUP BY post_id
            ) AS pm 
         ON ( p.ID = pm.post_ID ),
         {$wpdb->term_relationships} t 

         WHERE p.post_type='faq' AND t.object_id = p.ID AND t.term_taxonomy_id = '{$tax}'
         ORDER BY pm.meta_value ASC, ISNULL(pm.meta_key)", OBJECT_K);

    foreach ($q as $p) {
        array_push($posts, get_post($p) );  
    }

    return $posts;
}
我有以下问题:

get_post是否基于它所包含的数据构造WP_post对象 接收或提取post_id参数并查询 又是数据库?我无法从列表中找到此行为 参考指南。 如何基于所有Posts对象初始化WP_查询对象我应该手动设置postcount等所有参数,还是有更好的方法?
首先,修复你的代码。既然你有:foreach$q作为$p,你应该在以后得到$p而不是$p时使用$p来确定代码,你可能知道第二个或第一个问题的答案吗?首先修复你的代码。既然你有:foreach$q作为$p,你应该在以后得到$p但没有得到$p时使用$p来确定代码,你可能知道第二个或第一个问题的答案吗?