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

您是否曾经想从 WordPress 主页或博客存档页面隐藏博客文章?

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

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

在 WordPress 中隐藏主页上的帖子

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

这种方法比较简单,推荐给初学者。

您需要做的第一件事是安装并激活WordPress 隐藏帖子插件。有关更多详细信息,请参阅我们关于如何安装 WordPress 插件的分步指南。

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

隐藏帖子设置

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

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

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

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

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

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

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

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

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

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

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

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

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

在地址栏中查找帖子 ID

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

从主页隐藏 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 源中隐藏 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’);

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

从搜索结果中排除的帖子

从档案中隐藏 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 网站完全私有化的指南。