如何生成RSS:自动和手动方式
hqt 2020-08-07
- 什么是RSS,为什么需要它?
- 该站点上的RSS feed:缺点
- 手动RSS提要生成
- 通过内置的CMS和插件自动生成
- WordPress的
- 1C-Bitrix
- Joomla!
- 第三方网站解析器服务
- 结论:选择哪种生成方式
什么是RSS,为什么需要它?
RSS是用于描述新闻提要,文章公告,博客更改等的XML格式系列。借助RSS格式,您可以以对用户方便的方式来收集,处理和呈现信息。为此,使用了特殊的聚合程序,还可以将其导入服务以进行后续显示-例如,Yandex Turbo页面。
RSS最常用的版本(格式)是:
- RSS 0.9x用于发布结构简单的信息。
- RSS 2.x-用于发布常规数据。
- RSS 0.9和1.0是基于标准的RDF和XML格式。
在最近的过去,RSS提要专门用于收集网站上的更新-新闻,文章等。他们是使用Google读者,Feedly,Yandex.Lenta,My Yahoo等各种聚合器收集的。这些服务中有许多已不再有效。对于许多人来说,这可以肯定RSS提要作为永久内容来源的时代已经结束。现在,此功能已在社交网络中牢牢确立,至少您可以在帖子上发表评论(并通过点赞来表示支持),并且不需要新闻来源所有者的任何其他配置。
尽管如此,RSS仍然是现代Web(包括相同的社交网络)的重要工具。例如,如果该站点有一个论坛或公共“ Vkontakte”,则可以连接该站点的RSS源以在该论坛中发布帖子。另一个示例是将新闻从另一个站点的RSS提要发布到一个站点。典型的情况是在教育或区域性网站上创建新闻提要,并将其显示在页面上的正确位置。
并且,也许是最相关的:RSS用于Yandex服务-Zen,Turbo页面。
Turbo技术具有许多优势:您可以组织一个具有正确价格显示,购物车,聊天,通话按钮和其他有用的交互元素的成熟的在线商店。Yandex.Webmaster服务中启用了Turbo Pages功能:为此,您需要启用通过RSS 2.0通道的内容传输。
至于Zen:将网站上的文章添加到Yandex.Zen时,您可以避免传输不必要的内容并控制文章卡片的外观,并可以通过更准确地指定主题来增加感兴趣的访问者数量。今天是RSS,它以一种方便的格式用于从站点接收动态更新的信息。
Turbo页面的RSS标记示例
该站点上的RSS feed:缺点
在网站上使用RSS也不是没有缺点:
- 来自搜索引擎的过滤器是可能的。RSS提要中的信息索引要比主要来源中的信息更快。这很危险,因为搜索引擎可以将站点数据视为非唯一的,复制的。为避免这种情况,您需要将文章注释上载到提要,并敦促用户切换到全文源。
- 您的资料即使在未编入索引之前,也轻松快捷地成为其他资源所有者的猎物。因此,您的网站可能会失去其在搜索结果中的位置。正因为如此,大多数站点所有者开始放弃RSS feed。
在下文中,我们将讨论您可以在自己的站点上创建和定制RSS feed的方式。但是,应该记住,对于每个单独的服务-无论是Yandex.Zen,Turbo页面还是Yandex.News,您都需要自己的单独通道版本,该通道版本在结构上不同于标准版本(例如,由CMS手段生成)。例如,为Yandex.News服务准备的RSS提要与Zen提要的不同之处在于所需的属性集和插图大小的其他要求。
手动RSS提要生成
您可以为RSS feed创建XML标记并更新其内容。但是今天,除了很少更新信息的地方,几乎在任何地方都找不到这种方法。
通常,如果需要和使用RSS提要,则意味着该信息会经常更新,并且信息很多。因此,自动化在这里是必不可少的。如果您有足够的Web编程知识,则可以轻松编写代码以自己生成RSS feed。为此需要什么?
- 准备带有现成标记的文件模板。
- 使用特殊的PHP脚本更新其内容,该脚本将通过适当的服务或根据服务器上的指定时间表在请求XML文件时检查网站是否已更新。如果站点上有更新(例如,新产品已更改或新文章已发布),则脚本将更新XML文件。新信息将传递到其目的地,无论是其他脚本还是在世的人都可以在他喜欢的阅读器中滚动新闻源。
通过内置的CMS和插件自动生成
开箱即用的解决方案是获得有效RSS提要的最简单,最快的方法。通常,普通CMS已经具有用于生成RSS提要的内置选项,并且还具有一组旨在与相应服务一起使用的加载项(插件,模块)。根据CMS杂志,考虑适用于3种最受欢迎的CMS的可用解决方案-WordPress,1C-Bitrix和Joomla。
WordPress的
内置RSS供稿
CMS WordPress默认情况下会创建多个站点RSS feed。其中,两个主要页面很重要(指示了相对URL)-主页和最后一个注释。
- 最近的帖子/提要/。
- 最近的评论提要/评论/提要/。
您可以在“撰写”标签上的管理面板中配置要在WordPress网站供稿中显示的内容:
在“显示RSS提要中的最新…项目”项中,您需要指定一个数字,并在“对于RSS提要中的每篇文章,显示”项中,选择要显示的内容-公告或全部内容。
外挂程式
- Yandex Zen。它将完全符合Yandex的技术要求,自动为您站点上的Yandex.Zen服务创建一个新的RSS feed。
- Yandex.Turbo。工作原理与上一个类似:根据Yandex的要求为Yandex.Turbo服务创建一个新的RSS feed(或多个feed)。
- FeedWordPress。这是一个插件,用于使用指定RSS提要中的内容自动填充博客。在这种情况下,文章或链接会自动和手动发布到它们。
1C-Bitrix
内置RSS供稿
根据Bitrix文档,有3种方法以RSS格式导出信息块的内容。这很方便,因为在典型情况下,您甚至不需要编写任何其他代码-您只需要在设置中启用RSS导出即可,就可以使用它。让我们考虑其中一种方法。
在从外部访问信息块之前,请在信息块设置(“内容” > “信息块” > “信息块的类型”)中允许使用RSS :
选择您需要为其配置RSS的信息块的类型:
在用于编辑参数的表格中,转到“高级”标签:
我们设置“使用导出到RSS”参数的复选框,保存参数。现在我们可以转到RSS信息块。
我们以这种方式提出要求:
http://sitename.com/bitrix/rss.php?ID=1&LANG=ru&TYPE=content&LIMIT=10
要访问RSS文件,您需要使用ID,LANG,TYPE和LIMIT参数运行对/bitrix/rss.php脚本的请求。
这些参数是什么意思:
- ID是信息块ID或信息块的符号代码;
- LANG-infoblock网站;
- TYPE-信息块类型;
- LIMIT-要显示的元素数。
这是一种快速简便的方法,可以在大多数典型情况下使用。如果需要重做RSS输出,则可以使用1C-Bitrix文档中的其他方法。
模组
- Yandex.Zen RSS-PRO。该模块显示并允许您管理Yandex.Zen的RSS提要。
- “用于创建XML格式的RSS提要的模块”:1C-Bitrix的模块。当您需要生成某种XML格式的RSS提要以便将文件提交给各种服务时,该模块将非常有用。该模块生成的文件符合RSS 2.0规范。
- “ RSS PRO-灵活性和简单性”:1C-Bitrix的模块。该模块显示并允许您灵活地管理RSS feed。
- Yandex Turbo页面PRO。用于以RSS 2.0格式卸载信息块和静态页面的模块。创建Turbo页面。该模块具有灵活的设置,对托管不挑剔,允许您上传任意数量的页面。
Joomla!
内置RSS供稿
在Joomla版本3中,默认情况下已生成RSS feed。您只需要在网站上的某个位置链接到它。但是它仅显示在某些类别中,您可以在网站的主页上配置其显示。
要在管理面板中进行配置,请遵循以下路径:菜单>主菜单,然后打开标题“主页”。在“菜单项的类型”行中,值为“博客类别”,在“选择类别”行中,您需要选择一个类别或子类别,这些类别或子类别将在主页以及相应的新闻提要中广播。如果您选择“精选材料”,那么它们将在新闻源中广播。
模组
- ObRSS将帮助您创建数量不限的RSS源,就界面功能而言,它们可以与 CNN和BBC等领先的新闻门户网站相提并论。自定义JSON格式使您可以创建通用数据源,在开发iOS或Android应用程序时可以轻松集成该通用数据源。此外,您可以创建多个并行提要,例如,对于以多种语言同步发布内容的多语言站点,或者相反,可以将多个RSS提要收集为一个。
- RizVN FeedBurner是具有基本功能的简单RSS feed模块。尽管解决方案很简单,但接口本身还是完美无缺的,包括订阅表单。所有管理和配置都很简单,并且可以通过管理员界面执行。
第三方网站解析器服务
第三方RSS feed生成器(例如feed43.com,feedity.com或feedfry.com)是那些不想处理RSS生成或根本没有时间进行RSS处理的人的解决方案。这些服务中的许多服务都可以转换现有的RSS feed,以添加即使是经验丰富的开发人员也可能感兴趣的功能。
RSS生成器中既有付费选项,也有免费选项。通常,要接收RSS提要,只需指出指向原始站点的链接,并根据需要进行其他设置即可:例如,跟踪程度-页面上的所有更改或仅重要更改;在Feed中选择什么网址。在某些情况下,您甚至可以在页面上手动指定标记块,以从中获取信息以输出到最终RSS提要。结果,您将收到一个指向站点RSS源的链接(例如https://feedfry.com/rss/11ead169f2619e828d148ce026dff2a1),您可以将其上传并粘贴到任何位置。