虽然WordPress提供了对文章设置密码保护或不公开的选项。但有时,我们只想在网站中隐藏文章,当访客具有文章的绝对链接时,我们仍允许其查看。

隐藏特定文章

  实现文章隐藏也很简单,只需要在后台的外观-主题编辑器-模板函数(functions.php)中添加几行代码即可。

function exclude_from_everywhere($query) {
      if ( $query->is_home() || $query->is_feed() || $query->is_search() || $query->is_archive() ) {
          $query->set('post__not_in', array(1, 2, 3));
      }
}
add_action('pre_get_posts', 'exclude_from_everywhere');

  其中is_home()表示首页,is_feed()表示RSS Feed订阅,is_search()表示站点内搜索,is_archive()表示文件归档(如sitemap等);array(1, 2, 3)表示隐藏id为1,2,3的文章,具体隐藏什么文章请自行设置。
  if条件可以根据个人情况自行增减。

隐藏特定分类下全部文章

  修改方法、代码与隐藏特定文章类似,具体代码如下。

function exclude_category_home( $query ) {
    if ( $query->is_home ) {
        $query->set( 'cat', '-1, -2' );
    }
    return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );

  '-1, -2'表示隐藏id为1,2的分类,分类id前注意不要遗漏-


注:如果搜索引擎已经对文章进行了索引,添加此代码并不会删除搜索引擎的索引记录。