从与GET_POST冲突的搜索中排除自定义帖子类型

时间:2016-11-04 作者:Mark Wilson

我想在搜索结果中隐藏我的自定义帖子类型。因此,我按照法典使用:

exclude_from_search => \'true\' 注册自定义帖子类型时。

这将隐藏自定义帖子类型,并且它不再显示在搜索结果中。

但现在我无法使用get_posts 但他们看起来很好WP_Query. 我想知道为什么会这样。

2 个回复
最合适的回答,由SO网友:Nabil Kadimi 整理而成

get_posts() 使用WP_Query, 因此,您可能提供了错误的参数,值得一提的是,函数some default arguments.

这应该得到CPT的所有职位myCPT:

$args = array(
    \'posts_per_page\' => -1,
    \'post_type\'      => \'myCPT\',
    \'post_status\'    => \'any\',
);
$posts_array = get_posts( $args ); ?>

SO网友:Arun

你能试试这个代码吗?

function excludePages($query) {
   if ($query->is_search) {
      $query->set(\'post_type\', \'post\');
   }
   return $query;
}
add_filter(\'pre_get_posts\',\'excludePages\');

相关推荐