通常,WordPress的搜索结果是根据发布时间进行排序的,相关性较低。如果您想改变搜索结果的排序方式,以相关性为准,有什么方法呢?在WordPress主题开发中,如何提高搜索结果的相关性呢?实际上,我们可以通过在当前主题的functions.php文件中添加以下代码来增强WordPress搜索的相关性。

WordPress主题开发中提高搜索结果相关性的方法

示例如下:

//提高搜索结果相关性
if(is_search()){
add_filter('posts_orderby_request', 'search_orderby_filter');
}
function search_orderby_filter($orderby = ''){
	global $wpdb;
	$keyword = $wpdb->prepare($_REQUEST['s']);
	return "((CASE WHEN {$wpdb->posts}.post_title LIKE '%{$keyword}%' THEN 2 ELSE 0 END) + (CASE WHEN {$wpdb->posts}.post_content LIKE '%{$keyword}%' THEN 1 ELSE 0 END)) DESC,
{$wpdb->posts}.post_modified DESC, {$wpdb->posts}.ID ASC";
}

发表回复

后才能评论