我想在侧边栏中获取过去30天的帖子,但我不想使用query\\u posts,有没有办法通过get posts功能实现这一点?
WordPress按日期获取帖子,不带QUERY_POSTS
2 个回复
最合适的回答,由SO网友:Bainternet 整理而成
是的,只需在调用之前添加一个筛选器,然后删除它
function filter_where_wpa89154($where = \'\') {
//posts in the last 30 days
$where .= " AND post_date > \'" . date(\'Y-m-d\', strtotime(\'-30 days\')) . "\'";
return $where;
}
add_filter(\'posts_where\', \'filter_where_wpa89154\');
$args = array(
\'posts_per_page\' => 5,
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'suppress_filters\' => false
);
$posts = get_posts($args);
remove_filter(\'posts_where\', \'filter_where_wpa89154\');
请注意\'suppress_filters\' => false
这就是为什么get_posts
SO网友:Kode
从3.7开始,您可以使用date\\u查询http://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters
所以它看起来像:
$args = array(
\'posts_per_page\' => 5,
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'date_query\' => array(
\'after\' => date(\'Y-m-d\', strtotime(\'-30 days\'))
),
\'suppress_filters\' => false
);
$posts = get_posts($args);
结束