每个类别和子类别中的帖子的MySQL语句计数

时间:2017-01-02 作者:Reuben Gomes

我正在尝试统计每个类别和子类别的所有帖子

它应该显示

main_cat     10
  -a1       5
  -a2       5 
我已经试过了,但我的计数都是,我得到的类别没有列出

SELECT t.name as `name`, t1.name as parentName, count(p.ID) as `TotalPosts`,
    SUM(if(p.post_date>\'2015-12-01 00:00:00\',1,0)) as \'LastMonth\' 
    FROM wp_posts p
    LEFT JOIN wp_term_relationships rel ON rel.object_id = p.ID 
    LEFT JOIN wp_term_taxonomy tax ON tax.term_taxonomy_id = rel.term_taxonomy_id AND tax.taxonomy =\'category\' 

    LEFT JOIN wp_terms t ON t.term_id = tax.term_id 

    LEFT JOIN wp_term_taxonomy tax1 ON tax.parent = tax1.term_taxonomy_id 

    LEFT JOIN wp_terms t1 ON t1.term_id = tax1.term_id 

    WHERE p.post_status = \'publish\' 
    GROUP BY t.name
    ORDER BY t1.name,LastMonth DESC, TotalPosts Desc
我正在尝试以列出的方式重新创建页面->类别部分

1 个回复
SO网友:prosti

你可以试试这个业余代码。

SELECT  COUNT(ID)
FROM wp_posts  
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) 
WHERE 1=1  
AND ( 
  wp_term_relationships.term_taxonomy_id IN (1)
) 
AND wp_posts.post_type = \'post\' 
AND ((wp_posts.post_status = \'publish\')) 
GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC
请注意term_taxonomy_id IN (1) 是类别ID为1的位置。您可以删除已发布帖子的行,这样它将获得任何帖子。

您只需要为您拥有的任何类别运行此代码。