最后更新时间为 2020年4月2日
有朋友问,wordpress的搜索结果能否出现近十天的内容?虽然我不知道他这奇怪的需求是要干啥,但是是可以的。一般要改变前台的结构,我都用pre_get_posts钩子,然后判断是否是搜索页面,加上日期搜索的条件即可。
将代码复制到主题的functions.php文件中即可,当然如果有更奇怪的需求,可以对照上面的的注释修改。
代码如下:
function ashuwp_custom_posts_per_page($query){
//非后台、搜索页面、主循环
if(!is_admin() && is_search()&& $query->is_main_query()){
$today = getdate(); //获取当前时间
$ago_time = strtotime("-10 days"); //十天前的时间戳
$days_ago = getdate($ago_time); //按时间戳返回十天前的日期
$date_args = array(
array(
'after' => array(
'year' => $days_ago['year'],
'month' => $days_ago['mon'],
'day' => $days_ago['mday'],
),
'before' => array(
'year' => $today['year'],
'month' => $today['mon'],
'day' => $today['mday'],
),
'inclusive' => true, //启用after before
),
);
$query->set('date_query', $date_args);
}
return $query;
}
add_action('pre_get_posts','ashuwp_custom_posts_per_page');