在我的Wordpress设置中,每个帖子都有一个帖子元,附带meta_key = visitor_tracking_visitor_id,这是帖子作者ID。
我正在尝试从Wordpress wp_posts表中提取帖子列表,以及针对该给定作者ID的状态=发布的帖子数。
表格
wp_posts
id | post_title | post_content | post_status(“发布”或“垃圾”)
wp_postmeta
post_id(加入wp_posts'id)| meta_key | meta_value
当meta_key = visitor_tracking_visitor_id时,meta_value包含作者ID
预期结果示例:
| id | meta_value(作者ID)| count_of_posts_by_that_meta_value |
| 1 | 1234 | 10 |
| 2 | 1234 | 10 |
| 3 | 5678 | 4 |
我知道如何将帖子信息与作者的ID一起提取:
SELECT `id`, `post_title`, `post_content`, `post_status`, `meta_value` FROM `wp_posts` LEFT JOIN wp_postmeta ON `id` = `post_id` WHERE `post_type` = 'post' AND `post_status` in ('trash','publish') AND `meta_key` = 'visitor_tracking_visitor_id'
如何仅使用SQL(不使用Wordpress函数)将作者发布的帖子数量拉到另一个字段?
提前感谢您的帮助!
答案 0 :(得分:0)
为什么要为每个帖子中已有的内容创建post meta?只需获取帖子get_the_author_id()
的作者ID即可如果你想要一个作者的列表发布链接,你可以在循环中使用 https://codex.wordpress.org/Function_Reference/the_author_posts_link
要获得作者或用户发布计数,您可以使用 https://codex.wordpress.org/Function_Reference/count_user_posts
答案 1 :(得分:0)
不需要使用SQL:
$args = array(
'meta_key' => 'visitor_tracking_visitor_id',
'meta_value_num' => 76, // The "author" ID,
'fields' => 'ids',
);
$query = new WP_Query($args);
$count = $query->found_posts;