如何按目标获取评论列表

时间:2013-10-11 作者:Twifty

我一直在看课程WP_Comment_QueryWP_Meta_Query 但老实说,我不知道如何将它们一起使用。我想在数据库中查询注释,其中wp_posts::post_author == Xwp_comments::comment_post_id == wp_posts::post_id. 有谁能举一个用法的例子吗?

由于SQL不是我的专长,下一个问题与WP无关,但如何构建SQL查询来处理2个表呢?

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

当要检索帖子时,应该打电话WP_Query.

WP_Query 已调用参数meta_query 但它没有comment_query.

所以可能需要一个技巧来实现你想要的,

$args = array();
$args[\'feed\'] = 1;
$args[\'withcomments\'] = 1;
$args[\'author\'] = 1; //author id.
$query = new WP_Query($args);
$posts = $query->posts;
//do what you want
wp_reset_postdata();
请注意,$args可能需要更多值,例如post\\u status和posts\\u per\\u page。我只是给你一个大概的想法。

它将生成两个SQL查询:

SELECT wp_comments . * 
FROM wp_comments
JOIN wp_posts ON ( wp_comments.comment_post_ID = wp_posts.ID ) 
WHERE comment_approved =  \'1\'
AND (
wp_posts.post_author =1
)
AND wp_posts.post_type =  \'post\'
AND (
wp_posts.post_status =  \'publish\'
OR wp_posts.post_status =  \'private\'
)
GROUP BY wp_comments.comment_id
ORDER BY comment_date_gmt DESC 



SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1 =1
AND wp_posts.ID
IN ( 528, 1 ) 
ORDER BY wp_posts.post_date DESC 
LIMIT 0 , 10
第二个SQL查询将通过从第一个SQL返回的POST ID检索POST。

我建议对您的任务使用自定义SQL查询

SELECT wp_posts . * 
FROM wp_posts
JOIN wp_comments ON ( wp_comments.comment_post_ID = wp_posts.ID ) 
WHERE comment_approved =  \'1\'
AND (
wp_posts.post_author =1
)
AND wp_posts.post_type =  \'post\'
AND wp_posts.post_status =  \'publish\'

结束

相关推荐

Database for development

虽然构建插件,但我最大的烦恼之一是我的开发机器与实际安装不匹配。我这里的意思是,我的数据库缺乏。我会编写一些代码,认为它可以工作(因为它在开发过程中工作),然后发现它不能工作,因为我忽略了本地数据库中缺少的一个小细节。即使是我自己的在线安装也不包含完整的数据库。是否有一套预先填写了通常WP内容的db?甚至是自动添加行和列的脚本?我正在寻找不同角色、自定义帖子类型、分类法、评论等的用户,这些用户只能出于开发目的访问?如果没有,是否有人有一个旧站点的备份,他们想共享?