WP_QUERY从不同的表调用数据

时间:2019-09-05 作者:AYMEN SOUMER

我需要从多个表中检索数据,wp\\u postmeta获取具有特定类型(问题)的帖子,wp\\u用户获取作者信息,以及wp\\u评论。

我需要这些信息才能在rest api中使用它们

我已经创建了一条新路线

add_action(\'rest_api_init\', function () {

  register_rest_route( \'myroute/v1\', \'mydata/\',array(
                \'methods\'  => \'GET\',
                \'callback\' => \'get_data\'
      ));
});


function get_data($request) {

    $args = array(  
       \'post_type\' => \'question\',
       \'post_status\' => \'publish\',
       \'posts_per_page\' => 8,
   );
如何加入请求并从多个表中获取数据

我需要每个帖子的作者姓名和评论数

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

如何加入请求并从多个表中获取数据

相反,您不会将其分解为多个步骤,并通过单独的

例如,假设我想列出排名前5位的帖子,并显示一段关于作者的用户元,例如分数。这不能在一个电话中完成,但这没关系,所以我可以在几个电话中完成。例如:

$args = [
    \'posts_per_page\' => 5
];
$query = new WP_query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        the_title(); // show the title
        $score = get_user_meta(  get_the_author_id(), \'score\', true );
        echo "Author score:" . absint( $score );
    }
}
您不需要通过将用户元表合并到posts表中WP_Query, 这没有道理。使用适当的API获取适当的数据,不要尝试将其全部涂抹到一个调用中(这不会使它更快,如果有什么会使它变慢的话)