WordPress搜索是如何在幕后工作的?

时间:2013-09-27 作者:chrisd

我使用WordPress search搜索一系列自定义帖子类型,并允许用户深入到每个单独的帖子类型。

然而,我发现WordPress并没有首先返回我认为“最好”的匹配项。例如,如果我搜索Microsoft,不定期包含该术语的页面仍会在定期使用该术语的页面之前返回。

基本上,我试图找到一些关于WordPress如何对页面进行排序并确定相关性的信息,以及我是否能够影响这一点without having to install any plugins.

非常感谢您的帮助。

2 个回复
最合适的回答,由SO网友:Milo 整理而成

EDIT - WordPress的当前版本支持相关性,因此此答案不再准确。

没有排名或相关性的概念,只是对帖子标题和内容的简单查询:

($wpdb->posts.post_title LIKE \'{$n}{$term}{$n}\') OR ($wpdb->posts.post_content LIKE \'{$n}{$term}{$n}\')
您可以使用posts_search 筛选以修改搜索查询或将其完全替换为您自己的查询。从…起/wp-includes/query.php:

// Allow plugins to contextually add/remove/modify the search section of the database query
$search = apply_filters_ref_array(\'posts_search\', array( $search, &$this ) );
另请参见available query filters on the WP_Query Codex page.

SO网友:fuxia

自从WordPress 3.7 (October 2013), 搜索结果按以下条件排序(请参见ticket 7394):

帖子标题中的完整句子匹配

还有新的过滤器:

  • wp_search_stopwords, 筛选中忽略的停止词WHERE.
  • posts_search_orderby, 筛选ORDER BY 排序搜索结果时

结束

相关推荐

Get_Search_link()重定向到404模板页面

我构建了一个自定义主题,其中有一个404。php页面和搜索。php页面。在模板的其他地方,我想直接链接到搜索页面。因此,我使用get\\u search\\u template()函数来获取搜索页面链接,其结果如下:http://example.org/search当我单击链接时,我会被发送到404页面模板。为什么会转到404页面模板而不是搜索页面模板?