您可以使用posts_orderby
筛选以更改返回帖子的顺序。这将对每个查询(前向查询和后向查询)运行,因此请确保您希望通过使用is_admin
, is_search
等
在下面的示例中,搜索结果按帖子类型按升序排序(例如,页面然后帖子),然后按帖子日期按降序排序。
add_filter(\'posts_orderby\',\'my_sort_custom\',10,2);
function my_sort_custom( $orderby, $query ){
global $wpdb;
if(!is_admin() && is_search())
$orderby = $wpdb->prefix."posts.post_type ASC, {$wpdb->prefix}posts.post_date DESC";
return $orderby;
}
免责声明:如果您有一个帖子类型“广告”,并且它出现在搜索结果中,那么它将出现在页面之前
撇开上面的免责声明不谈,这是一种相对廉价的方式来实现你的目标。