MySQL查询以获取WordPress中作者的月度帖子?

时间:2012-01-02 12:41:29

标签: mysql wordpress

我已成功地在WordPress博客上管理多位作者,感谢StackOverflow上的to this question。我意识到我希望有一个更简单的控制。在上一个问题上,我想在不同的时间间隔内管理作者,但我现在想要的只是他们的月度生产

我想有一个“简单”的SQL查询来获取每个人的每月作者和帖子列表,

Author  No. of posts 
======  ============

Paul         23
Ringo        14
John         11
George       31

而不是通过WP管理面板并按月和作者过滤,这将是快速和清晰的,可能使用(谢谢,ypercube)WordPress Database Description上显示的信息。我看到的问题之一是如何只询问某个月份和年份。实际上,这将是查询中的重要变量......

这难吗?

2 个答案:

答案 0 :(得分:4)

这个怎么样:

SELECT COUNT( p.id ) post_count, user_nicename, DATE_FORMAT( post_date,  '%Y-%m' ) post_month
FROM  `wp_posts` p,  `wp_users` u
WHERE post_status =  'publish'
AND post_type = 'post'
AND u.ID = post_author
GROUP BY post_author, post_month

编辑:所以将它全部与月份和年份分开并分组并将日期范围放在WHERE子句中:

SELECT COUNT( p.id ) post_count, user_nicename, DATE_FORMAT( post_date,  '%Y' ) post_year, DATE_FORMAT( post_date,  '%m' ) post_month
FROM  `wp_posts` p,  `wp_users` u
WHERE post_status =  'publish'
AND post_type =  'post'
AND u.ID = post_author
AND p.post_date >=  '2011-11-01'
AND p.post_date <  '2011-12-01' + INTERVAL 1 MONTH 
GROUP BY post_author, post_year, post_month
ORDER BY post_year, post_month

答案 1 :(得分:1)

仅一个月(比如2011年12月):

SELECT 
    u.user_nicename AS Author
  , COUNT(*) AS Number_Of_Posts
FROM 
      wp_posts AS p
  JOIN
      wp_users AS u
    ON u.ID = p.post_author
WHERE p.post_type = 'post'
  AND p.post_status =  'publish'
  AND p.post_date >= '2011-12-01'
  AND p.post_date <  '2011-12-01' + INTERVAL 1 MONTH
GROUP BY
    u.ID

查询可以使用(post_type, post_status, post_date)的索引来选择要分组的行。