我创建了一个新的附加表,该表对职位进行了类似于下面的排名:
------------------
| post_id | rank |
| 6 | 3 |
| 4 | 1 |
| 5 | 2 |
------------------
我想对我网站搜索结果中的帖子进行排序,以便按此自定义表中的排名进行排序。我想利用WP的内置功能,但有没有办法使用
$query->set()
?if ($query->is_search) {
...
$query->set('orderby', ???);
...
}
最佳答案
您最好的选择可能是使用posts_join
和posts_orderby
过滤器。
所以基本上,在post-id上加入新表并调整orderby。
https://codex.wordpress.org/Plugin_API/Filter_Reference/posts_join
https://codex.wordpress.org/Plugin_API/Filter_Reference/posts_orderby