由于WP 3.7有一个过滤器"posts_search_orderby"
允许设置搜索顺序。
确保过滤器按预期设置工作"orderby"
到"relevance"
.
add_action( \'pre_get_posts\', function( $query ) {
if ( $query->is_search() ) {
$query->set( \'orderby\', \'relevance\' );
}
} );
然后,假设您的profiles CPT slug是“profiles”:
add_filter( \'posts_search_orderby\', function( $search_orderby ) {
global $wpdb;
return "{$wpdb->posts}.post_type LIKE \'profiles\' DESC, {$search_orderby}";
});
按照通常的方式,将显示所有在帖子标题或帖子内容中具有搜索关键字的帖子,但排序方式如下:
包含配置文件CPT的帖子,无论搜索关键字是在标题中还是在内容中,按降序日期排序,无论帖子类型,按降序日期排序,无论帖子内容中包含搜索关键字,无论帖子类型,按降序日期排序