不能在WordPress搜索查询中放置两个自定义帖子类型吗?

时间:2011-08-19 作者:janoChen

我将以下代码放入functions.php 文件:

function filter_search($query) {
    if ($query->is_search) {
    $query->set(\'post_type\', array(\'topic\', \'reply\'));
    };
    return $query;
};
add_filter(\'pre_get_posts\', \'filter_search\');
使用该代码,我只能搜索reply 自定义帖子类型(结果为topic 自定义帖子类型不显示)。

这两种都是来自bbpress 2.0 plugin.

我必须这样做:

$query->set(\'post_type\', array(\'topic\'));

为了使topic 显示自定义帖子类型(但我不再获得reply 自定义帖子类型以显示在结果中)。

有什么建议可以解决这个问题吗?

1 个回复
SO网友:Amit

试着把它放到你的函数中。php文件:

function filter_query_for_search( $query ) {
    if ( isset( $query[\'s\'] ) ) {
        $query[\'post_type\'] = array(\'forum\', \'topic\', \'reply\', \'any\');
    }
    return $query;
}

add_filter(\'request\', \'filter_query_for_search\', 1);
这将在执行查询之前挂接到查询中。

结束