gpt4 book ai didi

wordpress - 按相关性对 Wordpress 搜索进行排序

转载 作者:行者123 更新时间:2023-12-04 07:23:55 24 4
gpt4 key购买 nike

我已经为我正在使用 atm 的 Wordpress 站点创建了一个非常高级的搜索。允许访问者按不同的分类法过滤结果,按日期或自定义字段以及正常的自由文本搜索(WP 默认提供)对其进行排序。

我已经使用 pre_get_posts 完成了这项工作过滤并简单地将我的内容添加到查询中,如下所示:(请注意,我遗漏了一些健全性检查和其他代码)

<?php
add_filter('pre_get_posts', 'my_search');

function my_search ($qry) {
# Include more post types
$qry->set('post_type', array('foo', 'bar'));

if ($_GET['myorder'] == 'price') {
$qry->set('orderby', 'meta_value_num');
$qry->set('meta_key', 'price');
$qry->set('order', 'ASC');
}
else {
$qry->set('orderby', 'date');
$qry->set('order', 'DESC');
}
}

现在我想添加另一种对帖子进行排序的方法,即按相关性。我知道这是一个非常常见的请求,我见过的问题的大多数解决方案都包括使用 Relevanssi 插件。鉴于我已经编写了我自己的“插件”(好吧,至少是代码)并且我所有的搜索表单和列表都设置为使用它,此时切换到 Relevanssi 不会太容易。

Sooo,我想知道是否有人知道一些(最好)简单的方法来将它添加到我已经拥有的代码中?

据我了解,WP 使用 LIKE 进行搜索而不是 MATCH()这就是为什么它甚至没有可排序的相关性分数。如果这是正确的,我假设我必须完全编写自己的查询?如何在不弄乱 WP 的分页等的情况下执行此操作?或者我可以添加类似 $qry->set('WHERE', "MATCH(post_content) AGAINST('$q' IN BOOLEAN MODE) AS relevance"); $qry->set('sortby', 'relevance') 的内容吗?你认为吗?

最佳答案

我想你可以用 Relevanssi没有任何问题,但需要使用 filter钩,检查relevanssi_modify_wp_query有关更多详细信息,请检查以下代码

function func_reli($qry){
$qry->set( 'post_type', array( 'post', 'page', 'restaurant', 'products' ) );

if ($_GET['myorder'] == 'price') {
$qry->set('orderby', 'meta_value_num');
$qry->set('meta_key', 'price');
$qry->set('order', 'ASC');
}
else {
$qry->set('orderby', 'date');
$qry->set('order', 'DESC'); // <-- set (in your code 'add' is used)
}
return $qry; // <-- must return, in your code you didn't
}
add_filter('relevanssi_modify_wp_query', 'func_reli');

我已经测试了这段代码并且工作正常。在这个例子中,我使用了 'restaurant''products'自定义帖子类型和搜索效果非常好,只是相关的结果。您也可以使用 if php 5.3+已安装
add_filter('relevanssi_modify_wp_query', function($qry){
// Same code
});

另外,如果您使用 Relevanssi插件,你可以使用它的设置页面来设置 post_type而不是在您的 $qry->set( 'post_type', array(...) ) 中使用这个( functions.php )文件。

下面给出的碎石镜头

enter image description here

关于wordpress - 按相关性对 Wordpress 搜索进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17712388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com