如何在搜索时优先处理帖子上的帖子?

时间:2016-06-07 02:53:13

标签: wordpress

所以我是Wordpress的新手,因此我并不完全确定它是如何工作的。但我遇到的一个问题是默认搜索功能对页面和帖子的处理方式相同。

例如,我有一个名为Java的页面,然后我有几个帖子标题为学习Java#...如果我搜索Java,那么Page就会出现在最后一个项目中,而帖子就会出现在它之前。我想知道是否有办法调整搜索,所以我首先列出了页面。

此外,我已经搜索了一下这个问题并且已经看到了一些假设的PHP修复,但正如我所说,我是Wordpress的新手所以我不确定我将在PHP编辑的确切位置。任何帮助将不胜感激,如果你发表评论,请把我视为一个真正的初学者,并打破局面,以便我能更好地理解它。

1 个答案:

答案 0 :(得分:2)

您需要将此代码放在function.php

function change_search_result_order($query) {
// Check if current page is search page
    if ($query->is_search) {
// Specify orderby and order, ordering will be by slug of post_type: pAge > pOst
        $query->set('orderby', 'post_type');
        $query->set('order', 'ASC');
    };
    return $query;
}

add_filter('pre_get_posts', 'change_search_result_order');

默认搜索功能适用于所有帖子类型,您可以指定要搜索的内容:

$query->set('post_type', array('page','post'));
在获取任何帖子之前,

hook pre_get_posts会被触发,因此我们需要对其进行修改。并设置一些参数,以获得具有特定标准的帖子。