WordPress 搜索功能非常的简单简洁,使用起来也非常便捷,搜索时默认就只能检索 WordPress 的文章标题和内容,而且也不支持模糊搜索,所以有时候也显得比较鸡肋,但是 WordPress 强大的二次开发能力,我们可以通过开发在增强一下搜索功能。
在做百度专业问答与其他搜索引擎问答时,可能都会存在多标题的情况下,简单的说就是一篇文章可能需要适配多个标题,而当网站积累的数据内容多起来以后,想要检索通过 WordPress 文章自定义字段添加的多标题就没法直接找到了,这时候就显得非常的尴尬了,那么子凡为了给编辑偷懒,特地二开一下 WordPress 的搜索功能。
//WordPress 搜索支持自定义字段数据
add_action('posts_search', function($search, $query){
global $wpdb;
if ($query->is_main_query() && !empty($query->query['s'])) {
$sql = " OR EXISTS (SELECT * FROM {$wpdb->postmeta} WHERE post_id={$wpdb->posts}.ID and meta_key = 'Headline' and meta_value like %s)";
$like = '%' . $wpdb->esc_like($query->query['s']) . '%';
$search .= $wpdb->prepare($sql, $like);
}
return $search;
},2,2);
以上就是用于来支持 WordPress 搜索文章自定义字段数据的代码,如果你要使用或者用于检索自定义字段,需要修改以上代码中的“Headline”为自己自定义字段的 key。