我如何才能获得按日期发布的帖子数量的表格?

时间:2015-04-28 作者:Revious

我正试图调查博客上发布的帖子总数与收到的流量之间的相关性。我认为这不是一项艰巨的任务,但我使用Wordpress进行编码的经验几乎为零。

我想它应该像foreach一样,循环所有帖子并列出每个帖子的发布日期。然后按发布日期对其进行排序,然后统计已发布帖子的数量。

我的问题清楚吗?

3 个回复
SO网友:jjarolim

imho最快的方法是创建自定义sql语句:

global $wpdb;
$rows = $wpdb->query(\'SELECT DATE(post_date) AS date, COUNT(*) AS count FROM \' . $wpdb->posts . \' GROUP BY DATE(post_date) ORDER BY DATE(post_date)\');
foreach ($rows as $row) {
    echo $row->date . \': \' . $row->count . \'<br>\';
}

SO网友:Tom J Nowell

您将要使用WP_Query, along with the data parameters

e、 g.年份:

$years = array( 2015,2014,2013,2012 );
echo \'<table>\';
foreach ( $years as $year ) {
    $q = new WP_Query( array(
        \'year\' => $year,
        \'fields\' => \'ids\'
    ) );
    echo \'<tr><td>\'.$year.\'</td><td>\'. $q->found_posts.\'</td></tr>\';
}
echo \'</table>\';
注意,我指定只获取post ID,这是为了降低查询成本。这样做还意味着您可以更好地利用缓存插件

SO网友:Revious

这个答案将整合jjarolim的答案

正确的整个查询是

SELECT DATE(post_date) AS date, concat(post_title) titles, COUNT(*) AS count
FROM  wp_posts 
WHERE post_status = \'publish\'
AND post_parent = 0
AND post_type = \'post\'
GROUP BY DATE(post_date)
ORDER BY DATE(post_date)

结束

相关推荐

Split posts between databases

我的客户要求为基于WP的wordpress(单站点,而不是多站点)提供一个非常具体的解决方案。基本上,他想要的是,假设在1000篇文章之后,应该创建新的数据库(只有5个表,posts,posmeta和3个与分类相关的表),新的文章应该和所有的post meta一起存储在这个数据库中,直到它达到1000篇文章,然后处理重复。具有挑战性的部分是,所有这些数据库必须同时处于活动状态,因此WP应该能够同时访问来自主数据库和所有这些新创建的数据库(有5个表)的帖子。这可能需要hyperdb. 问题包括:如何告诉wp