虽然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前注意不要遗漏-
。
注:如果搜索引擎已经对文章进行了索引,添加此代码并不会删除搜索引擎的索引记录。