我正试图调查博客上发布的帖子总数与收到的流量之间的相关性。我认为这不是一项艰巨的任务,但我使用Wordpress进行编码的经验几乎为零。
我想它应该像foreach一样,循环所有帖子并列出每个帖子的发布日期。然后按发布日期对其进行排序,然后统计已发布帖子的数量。
我的问题清楚吗?
我正试图调查博客上发布的帖子总数与收到的流量之间的相关性。我认为这不是一项艰巨的任务,但我使用Wordpress进行编码的经验几乎为零。
我想它应该像foreach一样,循环所有帖子并列出每个帖子的发布日期。然后按发布日期对其进行排序,然后统计已发布帖子的数量。
我的问题清楚吗?
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>\';
}
您将要使用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,这是为了降低查询成本。这样做还意味着您可以更好地利用缓存插件这个答案将整合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)
我的客户要求为基于WP的wordpress(单站点,而不是多站点)提供一个非常具体的解决方案。基本上,他想要的是,假设在1000篇文章之后,应该创建新的数据库(只有5个表,posts,posmeta和3个与分类相关的表),新的文章应该和所有的post meta一起存储在这个数据库中,直到它达到1000篇文章,然后处理重复。具有挑战性的部分是,所有这些数据库必须同时处于活动状态,因此WP应该能够同时访问来自主数据库和所有这些新创建的数据库(有5个表)的帖子。这可能需要hyperdb. 问题包括:如何告诉wp