您是否曾经想在 WordPress 主页或博客存档页面中隐藏博客文章?
虽然您可以将 WordPress 帖子设置为密码保护或私密,但在某些情况下,您可能只是想在主页上隐藏该帖子,同时仍允许其他人查看该帖子(如果他们有直接链接)。
在本文中,我们将向您展示如何隐藏 WordPress 中选定页面(例如主页、类别档案、搜索结果等)中的帖子。
![在 WordPress 中隐藏主页中的帖子 在 WordPress 中隐藏主页中的帖子](https://www.wpbeginner.com/wp-content/uploads/2019/10/hidepostsfromhomepage.png)
我们将向您展示两种从主页隐藏帖子的不同方法。您可以使用下面的快速链接直接跳至您要使用的方法。
方法 1. 使用插件从主页隐藏 WordPress 帖子
这种方法比较简单,推荐初学者。
您需要做的第一件事是安装并激活WordPress 隐藏帖子插件。有关更多详细信息,请参阅我们有关如何安装 WordPress 插件的分步指南。
激活插件后,继续编辑您想要隐藏的帖子。您会注意到编辑器右栏中有一个新的“隐藏帖子”部分。
![隐藏帖子设置 隐藏帖子设置](https://www.wpbeginner.com/wp-content/uploads/2019/09/hideposts-settings.png)
单击它将显示插件选项。您可以隐藏首页和博客页面、类别或标签页面、作者页面和网站搜索结果上的帖子。
只需选择您喜欢的选项,然后保存您的帖子。
根据您选择的选项,您现在可以访问这些页面,并且该特定帖子将不会列出。
所有拥有直接发布 URL (永久链接) 的用户仍然可以通过输入 URL 来查看它。
虽然此方法是最简单的,但它缺乏几个强大的选项。
例如,您无法隐藏页面或自定义帖子类型(如WooCommerce产品)。它也没有从WordPress RSS feed中隐藏帖子的选项。
方法 2. 手动隐藏 WordPress 帖子和页面
此方法需要您向 WordPress 网站添加代码。如果您之前没有这样做过,请参阅我们关于如何在 WordPress 中复制和粘贴代码片段的指南。
WordPress 使用数据库查询来根据用户正在查看的页面获取和显示帖子。它还提供内置挂钩,用于在运行查询之前修改查询。
我们将使用这些挂钩来修改 WordPress 查询并隐藏不同部分中的 WordPress 帖子、页面和自定义帖子类型。
您可以使用代码片段插件添加自定义代码,这更安全并且不会破坏您的网站。或者,您可以将自定义代码添加到主题的functions.php文件或特定于站点的插件中。
您还需要要隐藏的帖子或页面的 ID。我们有一个关于如何在 WordPress 中查找帖子 ID 的快速教程,该教程展示了如何获取此信息。
基本上,您只需编辑帖子或页面即可在浏览器地址栏中查看其 ID。
![在地址栏中查找帖子 ID 在地址栏中查找帖子 ID](https://www.wpbeginner.com/wp-content/uploads/2019/09/wordpresspostidinaddressbar.png)
话虽这么说,让我们深入研究代码部分。
从主页隐藏 WordPress 帖子或页面
以下代码使用 is_home() 条件标记来查明用户是否正在查看主页。如果是,则会从查询中排除帖子 ID。
123456 | 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。
再次,我们建议使用WPCode等代码片段插件来轻松安全地在 WordPress 中添加此代码。
首先,您需要安装并激活免费的WPCode插件。有关说明,请参阅有关如何安装 WordPress 插件的指南。
激活插件后,单击 WordPress 仪表板中的“代码片段”菜单项。然后,单击“添加新”按钮。
![单击添加新按钮以在 WPCode 中添加您的第一个自定义代码片段 单击添加新按钮以在 WPCode 中添加您的第一个自定义代码片段](https://www.wpbeginner.com/wp-content/uploads/2021/08/wpcode-add-new-code-snippet.png)
接下来,找到“添加自定义代码(新代码段)”选项,然后单击其下方的“使用代码段”按钮。
![在 WPCode 中添加新的自定义代码片段 在 WPCode 中添加新的自定义代码片段](https://www.wpbeginner.com/wp-content/uploads/2021/08/wpcode-new-snippet.png)
在“创建自定义代码段”页面上,您可以首先为代码段添加标题。这可以是任何可以帮助您记住代码用途的内容。
然后,只需将上面的代码粘贴到“代码预览”框中,然后从下拉菜单中选择“PHP 片段”作为代码类型。
![将代码片段粘贴到 WPCode 中 将代码片段粘贴到 WPCode 中](https://www.wpbeginner.com/wp-content/uploads/2019/10/paste-code-for-hiding-posts-from-homepage.png)
之后,将开关从“非活动”切换为“活动”,然后单击“保存片段”按钮。
![激活并保存您的自定义代码片段 激活并保存您的自定义代码片段](https://www.wpbeginner.com/wp-content/uploads/2021/08/save-and-activate-snippet.png)
接下来,我们将向您展示一些用于隐藏 WordPress 帖子或页面的其他选项。您可以按照与上述相同的步骤使用WPCode在 WordPress 中添加这些代码片段。
隐藏 RSS 源中的 WordPress 帖子或页面
如果您想从主页隐藏 WordPress 帖子以及 WordPress RSS 提要,那么您只需在代码中使用 is_feed 条件标记即可。
123456 | 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 条件标记添加到代码中即可。
123456 | 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' ); |
由
您现在可以访问您的网站并搜索您想要隐藏的帖子。即使这些帖子是公开的,它们也不会出现在搜索结果中。
![从搜索结果中排除的帖子 从搜索结果中排除的帖子](https://www.wpbeginner.com/wp-content/uploads/2019/09/nothingfound.png)
从档案中隐藏 WordPress 帖子或页面
如何从类别、标签和日期存档等存档页面中隐藏特定的 WordPress 帖子或页面?为此,我们将使用 is_archive() 条件标签。
123456 | 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 帖子呢?
为此,您可以将我们之前使用的所有条件标签组合到一个代码片段中。
123456 | 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 网站完全私有的指南,或者我们的专家为 WordPress 用户精选的最佳 VPN 服务。