您是否要在WordPress的侧边栏小部件中添加图像?默认情…
您是否曾经想从WordPress主页或博客存档页面隐藏博客文章?
尽管您可以将WordPress帖子设置为受密码保护或不公开,但在某些情况下,您可能只想隐藏主页中的帖子,同时如果其他人具有直接链接,则仍然允许他们查看它。
在本文中,我们将向您展示如何隐藏WordPress中选定页面的帖子,例如首页,类别档案,搜索结果等。

方法1.使用插件从主页隐藏WordPress帖子
此方法更简单,建议初学者使用。
您需要做的第一件事是安装并激活WordPress Hide Posts插件。有关更多详细信息,请参阅有关如何安装WordPress插件的分步指南。
激活插件后,继续编辑您要隐藏的帖子。您会在编辑器的右栏中看到一个新的“隐藏帖子”部分。

单击它会显示插件选项。您可以在首页和博客页面,类别或标签页面,作者页面以及站点搜索结果中隐藏帖子。
只需选择您喜欢的选项,然后保存您的帖子。
现在,根据您选择的选项,您可以访问这些页面,并且该特定帖子不会列出。
具有直接发布URL(permalink)的所有用户仍然可以通过输入URL来查看它。
尽管此方法最简单,但缺少几个强大的选项。
例如,您不能隐藏页面或自定义帖子类型,如WooCommerce产品。它也没有从WordPress RSS feed中隐藏帖子的选项。
方法2。手动隐藏WordPress帖子和页面
此方法要求您将代码添加到WordPress网站。如果您以前没有这样做,请参阅有关如何在WordPress中复制和粘贴代码段的指南。
WordPress使用数据库查询来获取和显示基于用户正在查看的页面的帖子。它还提供内置的挂钩,以在运行查询之前修改查询。
我们将使用这些钩子来修改WordPress查询,并在不同部分中隐藏WordPress帖子,页面和自定义帖子类型。
您可以使用代码段插件添加自定义代码,该插件更安全且不会破坏您的网站。或者,您可以将自定义代码添加到主题的functions.php文件或特定于站点的插件中。
您还将需要您要隐藏的帖子或页面的ID。我们有一个关于如何在WordPress中查找帖子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 Feed隐藏WordPress帖子或页面
如果要隐藏主页以及WordPress RSS feed上的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 feed,那么您仍将在此处看到列出的帖子。其他用户在查看您的RSS feed时将看不到被排除的帖子。
从站点搜索隐藏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 feed,搜索结果和存档页面隐藏给定的帖子。
在WordPress中控制内容可见性
您可以使用上述两种方法隐藏WordPress帖子或页面。让我们回答有关WordPress中内容可见性控制选项的一些最常见问题。
这些方法是否完美地隐藏了内容?
不,他们没有。
例如,搜索引擎可能已经对帖子进行了爬网并建立了索引,然后才能将其隐藏。如果您想防止搜索引擎,请参阅有关如何从Google隐藏WordPress页面的指南。
如果WordPress插件使用自定义查询会跳过您的检查并显示您要隐藏的内容,那么这也将不起作用。
更好的方法是用密码保护帖子,以便只有拥有密码的用户才能查看它。
您还可以创建一个私人帖子,该帖子仅对您网站上的管理员,编辑和作者可见。
我可以使用这些方法为特定用户创建内容吗?
不可以,这些方法不允许您与特定用户有效地共享内容。更好的方法是使用WordPress会员插件。
像MemberPress这样的会员插件允许您创建和发布受限制的内容。您甚至可以出售订阅计划以访问高级内容。
有关更多详细信息,请参阅有关如何创建WordPress会员网站的指南,并提供分步说明。