WordPress带有内置的默认RSS提要。您可以通过向RSS提要添加自定义内容,甚至向RSS提要添加帖子缩略图来调整默认提要。默认的RSS和Atom提要对大多数用户来说已经足够了,但您可能希望创建一个定制的RSS提要来交付特定类型的内容。在本文中,我们将向您展示如何在WordPress中创建自定义RSS提要。
请注意,本教程不是针对初学者级别的WordPress用户。如果您是初学者,并且仍然想尝试它,那么请在本地安装。
像往常一样,在对实时网站进行任何重大更改之前,您必须创建WordPress网站的完整备份。
话虽如此,让我们开始使用您在WordPress中的第一个定制RSS提要。
假设您想要创建一个新的RSS提要,它只显示以下信息:
标题
链接
发布日期
作者
摘录
您需要做的第一件事是在主题的functions.php
文件或特定于站点的插件:
add_action('init', 'customRSS'); function customRSS(){ add_feed('feedname', 'customRSSFunc'); }
由❤️托管WPCode
在WordPress中一键使用
上面的代码触发customRSS
函数,该函数添加提要。ADD_FEED函数有两个参数:feed name和一个回调函数。提要名称将构成您的新提要URLyourdomain.com/feed/feedname
并且将调用回调函数来实际创建提要。记下Feed的名称,因为您稍后会用到它。
初始化提要后,您将需要创建回调函数来生成所需的提要,在主题的functions.php
文件或站点特定插件中:
function customRSSFunc(){ get_template_part('rss', 'feedname'); }
由❤️托管WPCode
在WordPress中一键使用
上面的代码使用get_template_part
函数链接到单独的模板文件,但是您也可以将RSS代码直接放入该函数。通过使用get_template_part
,我们可以将功能与布局分开。这个get_template_part
函数有两个参数,slug和name,这两个参数将查找名称为以下格式的模板文件,从顶部的文件开始(如果找不到第一个文件,则转到第二个文件,依此类推):
wp-content/themes/child/rss-feedname.php
wp-content/themes/parent/rss-feedname.php
wp-content/themes/child/rss.php
wp-content/themes/parent/rss.php
出于本教程的目的,最好将slug设置为您正在创建的提要的类型(在本例中为:RSS),并将名称设置为前面配置的提要名称。
一旦你告诉WordPress寻找提要模板,你就需要创建它。下面的代码将使用我们前面列出的信息生成提要的布局。将此文件另存为主题文件夹中配置的slug-name.php模板文件get_template_part
功能。
<?php /** * Template Name: Custom RSS Template - Feedname */ $postCount = 5; // The number of posts to show in the feed $posts = query_posts('showposts=' . $postCount); header('Content-Type: '.feed_content_type('rss-http').'; charset='.get_option('blog_charset'), true); echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" <?php do_action('rss2_ns'); ?>> <channel> <title><?php bloginfo_rss('name'); ?> - Feed</title> <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" /> <link><?php bloginfo_rss('url') ?></link> <description><?php bloginfo_rss('description') ?></description> <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate> <language><?php echo get_option('rss_language'); ?></language> <sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod> <sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency> <?php do_action('rss2_head'); ?> <?php while(have_posts()) : the_post(); ?> <item> <title><?php the_title_rss(); ?></title> <link><?php the_permalink_rss(); ?></link> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> <dc:creator><?php the_author(); ?></dc:creator> <guid isPermaLink="false"><?php the_guid(); ?></guid> <description><![CDATA[<?php the_excerpt_rss() ?>]]></description> <content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded> <?php rss_enclosure(); ?> <?php do_action('rss2_item'); ?> </item> <?php endwhile; ?> </channel> </rss>
由❤️托管WPCode
在WordPress中一键使用
该模板代码将按照上述布局生成一个RSS提要。这个postCount
变量允许您控制提要中显示的帖子数量。模板可以根据需要进行修改,以显示您需要的任何信息(例如,发布图像、评论等)。
这个the_excerpt_rss
函数将显示每个帖子的摘录,对于没有摘录的帖子,它将显示帖子内容的前120个单词。
最后,要显示提要,首先需要刷新WordPress重写规则。最简单的方法是登录到WordPress管理员,然后单击设置->;固定链接。进入此处后,只需点击保存更改,这将刷新重写规则。
您现在可以通过以下地址访问您的新订阅源yourdomain.com/feed/feedname
,其中feed name是您在add_feed
之前的功能。
W3C提供了提要验证服务,允许您验证结果提要。
故障排除
当我尝试查看我的提要时,收到404错误!检查您是否在URL中使用了正确的提要名称。它必须是您在add_feed
功能
如果您有正确的提要名称,则您的重写规则可能没有正确刷新。重新保存您的固定链接只是为了确保。
如果你已经重新保存了固定链接,你可以通过你的主题的函数.php文件强制重写刷新。将以下代码添加到我们先前创建的stomRSS函数中。确保将代码添加到add_feed
功能。
global $wp_rewrite; $wp_rewrite->flush_rules();
由❤️托管WPCode
在WordPress中一键使用
一旦你添加了这个,重新加载你的WordPress站点。注意:使用后应立即将其取出。一次足够让规则被冲走。我的订阅源不能进行验证!使用W3C提要验证器,应该给出您的提要未验证的具体细节。编辑提要模板文件以解决这些问题我收到语言/>;验证错误!在您的WordPress安装中没有配置RSS语言的情况下,这种情况很常见。为此,您可以将以下代码添加到主题的functions.php
文件,以更新语言选项。
function rssLanguage(){ update_option('rss_language', 'en'); } add_action('admin_init', 'rssLanguage');
由❤️托管WPCode
在WordPress中一键使用
编辑UPDATE_OPTION函数的第二个参数,将语言更改为您需要的语言。查看RSS语言代码的完整列表。
将上述代码添加到您的函数文件后,加载WordPress管理屏幕以使其生效。在此之后,代码应该从您的WordPress函数文件中删除。加载一次就足以配置RSS_LANGUAGE设置。这也可以通过在wp_options表中查找RSS_LANGUAGE选项直接在数据库中完成。
我们希望这篇文章能帮助你在WordPress中创建自己的定制RSS提要。在下面留下评论,让我们知道你将如何以及为什么在你的WordPress网站上使用定制的RSS提要。
RSS