有几种方法可以做到这一点。我曾经编写了一些扩展代码,将Apache Solr与WordPress search和BuddyPress集成在一起,这增加了很多功能。使用Apache Solr之类的工具,您可以自定义权重并做一些有趣的事情。Solr是一个成熟的搜索引擎,您需要为其运行服务器(或购买基于云的实例)。查看Solr for WordPress 插件作为一个起点,如果这似乎是一个好的路线为您。这里最大的负面影响是,你必须运行Solr,在它拥有你所需要的能力之前,你需要对它有所了解。然而,Solr所能做到的速度和复杂性会让您感到惊讶。
实现所需功能的下一个最强大的方法是使用$wpdb对象编写自己的搜索查询函数。这不是一个简单的选择,但最有可能产生您想要的结果。此选项的另一个警告是,您必须关注WordPress MySQL结构的更改,因为它可能会影响您的查询。从以下内容开始,然后需要研究MySQL连接,以便以您想要的方式获取所有查询:
global $wpdb;
$query = $wpdb->prepare("
SELECT *
FROM $wpdb->posts
WHERE post_title LIKE %s
", $search);
另一个更有限的解决方案是,您可以使用add\\u filter(\'posts\\u search\',\'my\\u custom\\u search\\u function\')构建一个过滤器,根据需要更改posts结果搜索,但这可能无法提供您所需的一切。
作为最终解决方案,您可以查看wp类型。com插件视图,看看它的查询构建功能是否适合您。我想一个自定义分类法和/或自定义字段(通过类型插件)可能可以在这里实现您的目标。