我一直在看课程WP_Comment_Query 和WP_Meta_Query 但老实说,我不知道如何将它们一起使用。我想在数据库中查询注释,其中wp_posts::post_author == X
和wp_comments::comment_post_id == wp_posts::post_id
. 有谁能举一个用法的例子吗?
由于SQL不是我的专长,下一个问题与WP无关,但如何构建SQL查询来处理2个表呢?
我一直在看课程WP_Comment_Query 和WP_Meta_Query 但老实说,我不知道如何将它们一起使用。我想在数据库中查询注释,其中wp_posts::post_author == X
和wp_comments::comment_post_id == wp_posts::post_id
. 有谁能举一个用法的例子吗?
由于SQL不是我的专长,下一个问题与WP无关,但如何构建SQL查询来处理2个表呢?
当要检索帖子时,应该打电话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\'
虽然构建插件,但我最大的烦恼之一是我的开发机器与实际安装不匹配。我这里的意思是,我的数据库缺乏。我会编写一些代码,认为它可以工作(因为它在开发过程中工作),然后发现它不能工作,因为我忽略了本地数据库中缺少的一个小细节。即使是我自己的在线安装也不包含完整的数据库。是否有一套预先填写了通常WP内容的db?甚至是自动添加行和列的脚本?我正在寻找不同角色、自定义帖子类型、分类法、评论等的用户,这些用户只能出于开发目的访问?如果没有,是否有人有一个旧站点的备份,他们想共享?