如何在 WordPress 的主页中隐藏帖子

您有没有想过在 WordPress 主页或博客存档页面中隐藏博客文章?

虽然您可以将 WordPress 帖子设置为密码保护或私密,但在某些情况下,您可能只想在主页上隐藏帖子,同时允许其他人在拥有直接链接的情况下查看.

在本文中,我们将向您展示如何隐藏 WordPress 中选定页面的帖子,例如主页、类别档案、搜索结果等.

Hide Posts from Home Page in WordPress

方法 1.使用插件从主页隐藏 WordPress 帖子

这个方法比较简单,推荐给初学者.

您需要做的第一件事是安装并激活 WordPress Hide Posts 插件.有关更多详细信息,请参阅有关如何安装 WordPress 插件的分步指南.

插件激活后,继续编辑您要隐藏的帖子.您会在编辑器的右栏中看到一个新的"隐藏帖子"部分.

Hide posts settings

点击它会显示插件选项.您可以在首页和博客页面、类别或标签页面、作者页面和站点搜索结果中隐藏帖子.

只需选择您喜欢的选项,然后保存您的帖子.

根据您选择的选项,您现在可以访问这些页面,并且不会列出该特定帖子.

所有拥有直接发布 URL(永久链接)的用户仍然可以通过输入 URL 看到它.

虽然这种方法最简单,但它缺少几个强大的选项.

例如,您不能像 WooCommerce 产品那样隐藏页面或自定义帖子类型.它也没有从 WordPress RSS 提要中隐藏帖子的选项.

方法 2.手动隐藏 WordPress 帖子和页面

此方法要求您向 WordPress 网站添加代码.如果您之前没有这样做过,请参阅我们关于如何在 WordPress 中复制和粘贴代码片段的指南.

WordPress 使用数据库查询根据用户正在查看的页面获取和显示帖子.它还提供了内置的钩子来在运行之前修改查询.

我们将使用这些钩子来修改 WordPress 查询并在不同部分隐藏 WordPress 帖子、页面和自定义帖子类型.

您可以使用代码片段插件添加自定义代码,该插件更安全且不会破坏您的网站.或者,您可以将自定义代码添加到主题的 functions.php 文件或特定于站点的插件中.

您还需要要隐藏的帖子或页面的 ID.我们有一个关于如何在 WordPress 中查找帖子 ID 的快速教程,该教程展示了如何获取此信息.

基本上,您只需编辑帖子或页面即可在浏览器的地址栏中查看其 ID.

Finding a post ID in the address bar

话虽如此,让我们深入研究代码部分.

从主页隐藏 WordPress 帖子或页面

以下代码使用 is_home() 条件标记来确定用户是否正在查看主页.如果是,则从查询中排除帖子 ID.

function wpb_exclude_from_home($query) {
	  if ($query->is_home() ) {
		  $query->set('post__not_in', array(1737, 1718));
	  }
}
add_action('pre_get_posts', 'wpb_exclude_from_home');

不要忘记将数组中的 ID 替换为您要排除的帖子或页面的实际 ID.

在 RSS Feed 中隐藏 WordPress 帖子或页面

如果您想从主页以及 WordPress RSS 提要中隐藏 WordPress 帖子,那么您只需在代码中使用 is_feed 条件标签即可.

function wpb_exclude_from_feed($query) {
	  if ($query->is_feed() ) {
		  $query->set('post__not_in', array(1737, 1718));
	  }
}
add_action('pre_get_posts', 'wpb_exclude_from_feed');

现在,如果您以管理员身份登录并尝试访问您的 WordPress RSS 提要,那么您仍会看到那里列出的帖子.其他用户在查看您的 RSS 提要时将无法看到排除的帖子.

在站点搜索中隐藏 WordPress 帖子或页面

现在,如果您想从 WordPress 网站搜索中隐藏特定帖子怎么办?为此,您只需将 is_search 条件标签添加到代码中.


function wpb_exclude_from_search($query) {
	  if ( $query->is_search() ) {
		  $query->set('post__not_in', array(1737, 1718));
	  }
}
add_action('pre_get_posts', 'wpb_exclude_from_search');

您现在可以访问您的网站并搜索您想要隐藏的帖子.即使这些帖子是公开的,它们也不会出现在搜索结果中.

Post excluded from search results

从档案中隐藏 WordPress 帖子或页面

如何从类别、标签和日期档案等归档页面中隐藏特定的 WordPress 帖子或页面?为此,我们将使用 is_archive() 条件标签.

function wpb_exclude_from_archives($query) {
	  if ( $query->is_archive() ) {
		  $query->set('post__not_in', array(1737, 1718));
	  }
}
add_action('pre_get_posts', 'wpb_exclude_from_archives');

从任何地方隐藏 WordPress 帖子或页面

到目前为止,我们已经学会了如何在特定区域隐藏 WordPress 帖子或页面.现在,一次从所有这些区域完全隐藏 WordPress 帖子怎么样?

为此,您可以将我们之前使用的所有条件标签组合到一个代码片段中.


function wpb_exclude_from_everywhere($query) {
	  if ( $query->is_home() || $query->is_feed() ||  $query->is_search() || $query->is_archive() ) {
		  $query->set('post__not_in', array(1737, 1718));
	  }
}
add_action('pre_get_posts', 'wpb_exclude_from_everywhere');

此代码将在主页、RSS 提要、搜索结果和存档页面中隐藏给定的帖子.

控制 WordPress 中的内容可见性

您可以使用我们上面描述的两种方法隐藏 WordPress 帖子或页面.让我们回答一些有关 WordPress 中内容可见性控制选项的最常见问题.

这些方法能完美隐藏内容吗?

不,他们没有.

例如,搜索引擎可能已经对帖子进行了抓取和索引,然后您才能将其隐藏.如果您想阻止搜索引擎,请参阅我们关于如何向 Google 隐藏 WordPress 页面的指南.

如果 WordPress 插件使用自定义查询跳过您的检查并显示您试图隐藏的内容,这也将不起作用.

更好的方法是对帖子进行密码保护,以便只有知道密码的用户才能查看.

您还可以创建仅对您网站上的管理员、编辑和作者可见的私人帖子.

我可以使用这些方法为特定用户创建内容吗?

不,这些方法不允许您与特定用户有效地共享内容.更好的方法是使用 WordPress 会员插件.

像 MemberPress 这样的会员插件允许您创建和发布受限制的内容.您甚至可以出售订阅计划以访问优质内容.

有关更多详细信息,请参阅我们的指南,了解如何使用分步说明创建 WordPress 会员网站.

我们希望本文能帮助您了解如何从主页和网站的其他区域隐藏 WordPress 帖子.您可能还想查看我们关于如何使 WordPress 网站完全私密的指南.

6

发表回复