Wordpress / MySQL - >获得帖子ID以及给定帖子的作者撰写的总帖子数

时间:2016-06-12 14:18:41

标签: mysql wordpress

在我的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函数)将作者发布的帖子数量拉到另一个字段?

提前感谢您的帮助!

2 个答案:

答案 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;

详细了解WP_Query in the Codex