将特定帖子从类别中排除的问题ID

时间:2020-05-04 作者:Daitarn

我试图通过以下功能从类别/归档中排除特定帖子:

function exclude_single_posts_cat($query) {
      if ( is_admin() || ! $query->is_main_query() )
        return;
     if ($query->is_archive() ) {
          $query->set(\'post__not_in\', array(\'1\',\'2\',\'3\'));}} 
          //I\'ve also tried** (\'-1\',\'-2\',\'-3\') or without quotes
      }
}
add_action(\'pre_get_posts\', \'exclude_single_posts_cat\',);
Or:

function exclude_single_posts_cat($query) {
     if ($query->is_category() AND $query->is_main_query()) {
        $query->set(\'post__not_in\', array(\'1\',\'2\',\'3\'));}} 
       //I\'ve also tried** (\'-1\',\'-2\',\'-3\') or without quotes.
     }
}
add_action(\'pre_get_posts\', \'exclude_single_posts_cat\');
但发生了一些我无法解释的事情,即,出现了与指定ID不对应的帖子(下面的示例中,隐藏的帖子可能是“4”、“5”、“6”)。有人能告诉我为什么会这样,我错在哪里吗?

提前谢谢你。

1 个回复
SO网友:Yash Tiwari

尝试以下操作:

function exclude_single_posts_cat($query) {
    if ( is_admin() || ! $query->is_main_query() )
        return;
    if ( $query->is_archive() ) {
        $query->set(\'post__not_in\', array(\'1\',\'2\',\'3\'));
    }
}
add_action(\'pre_get_posts\', \'exclude_single_posts_cat\');
问题:第一种方法的问题是添加了额外的花括号和逗号。

相关推荐