如何在WordPress中仅向RSS订阅者显示内容

09/22/2022

你想在WordPress中仅向RSS订阅者显示内容吗?虽然RSS(简易信息聚合技术)不如社交媒体流行,但仍有一些用户通过它来跟踪他们最喜欢的博客。如果你有RSS订阅者,可以向他们提供独家内容。

在本文中,我们将向你展示如何隐藏一般用户的内容,仅向RSS订阅者显示。

为什么要向WordPress RSS订阅者显示独家内容?

为RSS订阅者提供独家内容可以为你的网站带来双赢的局面。

对于读者来说,这会让他们有理由订阅你的RSS源,确保不会错过你的最新内容。这可以包括从新播客的优先访问到赢得激动人心奖品的独家抽奖等。

作为网站所有者,奖励读者的忠诚可以让用户保持参与,并不断回归,这对于试图建立追随者的新网站特别有帮助。

让我们看看如何在WordPress中仅向RSS订阅者显示内容。

如何在WordPress中仅向RSS订阅者显示内容

本教程需要向WordPress添加自定义代码,尤其是在你的functions.php文件中。为了使流程安全且适合初学者,我们将使用WPCode插件。

WPCode是市场上最好的代码片段插件。通过它,你可以轻松地向你的网站添加代码片段,而不需要直接处理WordPress主题文件。这大大降低了破坏网站或引发巨大错误的风险。

在使用以下方法之前,请确保先安装WPCode插件。无论是专业版还是免费版插件都适用于本教程。

详细的安装说明请参考我们的初学者指南,了解如何安装WordPress插件。

以下所有教程都使用相同的步骤,代码本身会根据你选择的用例有所不同。安装插件后,需要进入WordPress仪表盘中的“代码片段” » “+ 添加片段”。然后,选择“添加自定义代码(新片段)”并点击“使用片段”按钮。

方法1:仅向WordPress RSS订阅者显示特定内容片段

如果你想创建一个常规博客文章,但包含一个仅供RSS订阅者阅读的独家内容片段,可以使用此方法。此代码将从常规访客中隐藏一个特别的文章内容片段,并仅向RSS订阅者显示。

首先,为你的代码片段命名,如“显示特定内容给RSS”。然后,将代码类型更改为“PHP片段”。

之后,将以下代码添加到代码预览框中:

function wpb_showcontent_rss( $atts, $content ) {
if ( is_feed() )
return $content;
}
add_shortcode( 'showcontentrss', 'wpb_showcontent_rss' );

此函数检查当前请求是否为RSS供稿。如果是,则函数将显示在[showcontentrss]短代码标签内的内容。

添加代码后,向下滚动确保插入方法为“自动插入”并且位置为“在任何地方运行”。然后,点击“未激活”切换,使其变为“激活”,并点击“保存片段”按钮。

现在,打开Gutenberg块编辑器创建一个新的WordPress帖子,并像往常一样添加块。

然后,在页面的任意位置点击‘+’号添加块按钮并选择短代码块。

在新的短代码块中,添加[showcontentrss]和[/showcontentrss]标签。之后,可以在这两个标签之间写一些内容。

例如,我们写了:[showcontentrss]使用这个独家WPForms优惠码SAVE50享受50%的折扣[/showcontentrss]

完成后,发表文章。当你像常规访客一样访问你的网站时,你不会看到短代码内的内容。然而,如果你从RSS阅读器中打开WordPress博文,你将会看到它。

方法2:仅向RSS订阅者显示特定博客文章

如果你想把整个博客文章隐藏起来,不让常规访客看到,而仅向RSS订阅者显示,可以使用此方法。

第一步是给你的片段命名,如“排除特定帖子给RSS”。确保将代码类型更改为“PHP片段”。

现在,你需要复制下面的代码并粘贴到代码预览框中:

function excludePosts($query) {
// 检查查询是否为首页或存档页
if ($query->is_home() || $query->is_archive()) {
// 指定要排除的文章ID
$excludedPosts = array(1, 2, 3); // 替换1、2、3为你要排除的文章ID
$query->set('post__not_in', $excludedPosts);
}
return $query;
}
add_filter('pre_get_posts', 'excludePosts');

此功能指定要从一般浏览中排除并仅限RSS订阅者查看的文章ID。确保将ID号替换为所选的文章ID。如果你不确定在哪里找到你的文章ID,可以阅读我们的文章了解如何在WordPress中找到文章、分类、标签、评论或用户ID。

完成后,向下滚动确保插入方法为“自动插入”并且位置为“在任何地方运行”。然后使代码“激活”,并点击“保存片段”按钮。

如果代码有效,当你使用浏览器查看时,你将看不到这些博客文章,但在RSS阅读器中可以看到。

方法3:仅向RSS订阅者显示特定分类

如果你决定将仅供RSS使用的博客文章分组到一个分类中,可以使用此最终方法。此选项的好处是,当你创建新的RSS订阅者博客文章时,不需要每次更新代码。

像往常一样,给你的代码片段命名(如“排除分类给RSS”)并将代码类型更改为“PHP片段”。

然后,将以下代码插入到代码预览框中:

function excludeCategory($query) {
// 检查查询是否为首页或存档页
if ($query->is_home() || $query->is_archive()) {
// 从特定分类中排除文章,通过ID
$query->set('cat', '-1'); // 将‘1’替换为你想排除的分类ID
}
return $query;
}
// 将函数挂钩到‘pre_get_posts’过滤器
add_filter('pre_get_posts', 'excludeCategory');

此功能指定要从公共视图中排除并在RSS阅读器中显示的分类ID。激活此代码之前,确保将‘1’替换为分类ID,并保留‘-’号不变。

完成后,向下滚动确保插入方法为“自动插入”并且位置为“在任何地方运行”。然后使代码“激活”,并点击“保存片段”按钮。

如果你在浏览器中看不到该分类的博客文章,但在RSS阅读器中可以看到,则代码成功。

WordPress RSS Feed: 常见问题解答

现在我们已经展示了如何仅向RSS订阅者显示WordPress内容,让我们看看一些关于WordPress RSS源的常见问题。

RSS源仍然流行吗?

虽然RSS可能不是最热门的趋势,但许多人仍然使用它来跟踪他们最喜欢的网站。可以把它看作一种无需逐个检查每个站点就能收到新帖子通知的方式。

WordPress RSS源的好处是什么?

第一个好处是新帖子通知。订阅者可以在你发布新内容时自动收到提醒,确保不会错过你的任何文章。

第二个好处是RSS源可以帮助WordPress SEO(搜索引擎优化)。它们可以向搜索引擎信号你的网站在不断更新新内容。

你可以查看我们的快速简单提示,了解如何优化你的WordPress RSS源。

如何在WordPress中找到你的RSS源URL?

大多数情况下,WordPress已经为你的网站添加了RSS源。你只需要在域名后面加上/feed即可访问。有时,如果第一个选项不起作用,你需要加上/index.php/feed。

如何允许用户订阅你网站的RSS源?

允许用户订阅你网站的RSS源的最佳方式之一是使用像Brevo这样的电子邮件营销服务。此平台可以连接到你网站的源,并在你发布新内容时发送电子邮件通知。

然后,你可以将电子邮件营销平台与像WPForms这样的表单插件连接,以在你的网站上创建订阅表单。

有关更多信息,请参阅我们的文章,了解如何在WordPress中通知订阅者新帖。

我们希望这篇文章能帮助你学习如何在WordPress中仅向RSS订阅者显示内容。你可能还想查看我们精选的最佳WordPress RSS插件以及我们的逐步指南,了解如何提高你的WordPress速度和性能。



Related Posts

  • 2024-08-04
  • WordPress 教学

不喜欢 WordPress 4.3 引入的格式化快捷键?觉得有点烦人?最近,有用户问我们如何在 WordPress 中禁用视觉编辑器格式化快捷键。在本文中,我们将向您展示如何做到这一点。

閱讀更多
  • 2024-07-31
  • WordPress 教学

你在 WordPress 网站上看到 503 服务不可用错误吗?503 错误是因为服务器无法处理请求,通常是由于服务器过载或维护。而这个错误不会告诉你具体原因,这对于初学者来说非常令人沮丧。本文将向你展示如何修复 WordPress 中的 503 服务不可用错误。

閱讀更多
  • 2024-07-30
  • WordPress 教学

管理一个企业需要大量的工作。如果您无法正确维护您的 WordPress 网站,可能会迅速看到流量和销售额下降的现象。幸运的是,您可以聘请虚拟助手 (VA) 来帮助管理您的网站。本文将教您如何聘请 WordPress 虚拟助手,以便您可以专注于业务中最重要的活动。

閱讀更多

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>