我创建了一个新的附加表,该表对职位进行了类似于下面的排名:

------------------
| post_id | rank |
| 6       | 3    |
| 4       | 1    |
| 5       | 2    |
------------------

我想对我网站搜索结果中的帖子进行排序,以便按此自定义表中的排名进行排序。我想利用WP的内置功能,但有没有办法使用$query->set()
if ($query->is_search) {
    ...
    $query->set('orderby', ???);
    ...
}

最佳答案

您最好的选择可能是使用posts_joinposts_orderby过滤器。
所以基本上,在post-id上加入新表并调整orderby。
https://codex.wordpress.org/Plugin_API/Filter_Reference/posts_join
https://codex.wordpress.org/Plugin_API/Filter_Reference/posts_orderby

10-06 05:08
查看更多