不知道还在用 Rss Feed 订阅的人多不多,倡萌就是重度订阅患者,目前订阅的优质源有100多个,主要是关于WordPress和前端。用的在线订阅工具是 https://www.inoreader.com ,需要的朋友可以去看下,还是不错的!
言归正传,WordPress 可以在 设置 – 阅读 界面进行相关的Feed设置:
默认情况下,只会输出内容相关(标题、作者、文章正文或摘要等)的部分,不会有自定义的其他内容,具体你可以看下网址: https://www.wpdaxue.com/feed 。如果我们想添加自定义内容到 Feed输出,该如何实现?
方法1 使用插件
在大多数情况下,使用插件是将自定义内容添加到WordPress RSS /Feed 最简单方法。只需安装、激活、添加你的内容就可以了。这里倡萌推荐 Simple Custom Content 插件,其实这个插件不仅仅可以向 Feed 中添加自定义内容,还可以通过简码添加内容到任何地方。
方法2 使用自定义代码
插件的方法虽然简单,但是对于某些喜欢折腾的人或开发者来说,通过代码方式添加可能更灵活。
常用到的代码如下:
// 添加自定义内容到所有 Feed
function wpkj_add_content_to_all_feeds($content) {
$before = '<p>显示在文章内容前的自定义内容</p>';
$after = '<p>显示在文章内容后的自定义内容</p>';
if (is_feed()) {
return $before . $content . $after;
} else {
return $content;
}
}
add_filter('the_content_feed', 'wpkj_add_content_to_all_feeds');
这段代码段将指定的自定义内容添加到WordPress feed中的每个文章中。你可以通过添加到主题的 functions.php
中,或者制作一个简单的插件来使用。
上面的 wpkj_add_content_to_all_feeds
函数代码定义了 $before
和 $after
两个变量,分别对应文章正文的前后的自定义内容,我们可以去修改为任何你想添加的html格式的内容。
如果仅有 wpkj_add_content_to_all_feeds
函数自身的代码,是不会执行的,我们必须通过WordPress的钩子挂载,才可以生效。在这里我们用的是 the_content_feed
这个过滤钩子,可以对Feed输出的内容进行修改。
注:代码中使用了
is_feed()
作为判断,只在Feed输出中才添加自定义内容,否则直接显示正文。在这里其实是不必要的,因为我们是通过the_content_feed
这个钩子挂载函数的,这个钩子本身就是只对Feed输出进行操作的。 只是想告诉大家可以这样去做技术上的判断。
在文本开头的插图里面,我们看到可以设置Feed显示全文或摘要。上面提到的 the_content_feed
钩子就是针对全文的,如果你选择的是摘要,就可以使用 the_excerpt_rss
钩子。
//全文的时候用
add_filter('the_content_feed', 'wpkj_add_content_to_all_feeds');
//摘要的时候用
add_filter('the_excerpt_rss', 'wpkj_add_content_to_all_feeds');
好了,关于添加自定义内容到Feed输出的方法,就介绍到这里,如果你对钩子不熟悉,推荐拓展阅读:
- https://www.wpdaxue.com/series/50-filters-of-wordpress
- https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content_feed
- https://codex.wordpress.org/Template_Tags/the_excerpt_rss