扩展默认的WordPress RSS Feed

介绍

RSS (Rich Site Summary,简称 RSS) 是最初由 Dave Winer 开发的一种“内容分发”技术,主要用于新闻、博客等各种页面的内容聚合与推送。WordPress 提供了默认的 RSS 包含最近发布的文章,但如果需要根据需求定制 RSS 源,则需要对其进行扩展。

为什么要扩展 RSS Feed?

WordPress 默认提供的 RSS 只包含文章的标题、作者、发布时间和文章摘要等信息,但是在有些情况下,我们需要文章的更多信息,例如发布作者的网站链接、文章中附带图片的不同尺寸等,这些信息都可以通过在函数文件中添加一些额外的代码来实现。

如何扩展 RSS Feed?

使用 add_action() 函数添加新的节点和元素

在 WordPress 中,可以使用 add_action() 函数在 RSS feed 中添加新的节点和元素。例如,以下代码可以添加文章缩略图元素到 feed 中:

function add_thumbnail_to_rss() {

global $post;

if ( has_post_thumbnail( $post->ID ) ){

$thumbnail = get_the_post_thumbnail( $post->ID, 'large' );

echo $thumbnail;

}

}

add_action( 'rss2_item', 'add_thumbnail_to_rss' );

该代码将会在添加文章缩略图到 RSS 的同时,确保只有文章中有图像才会出现。需要注意的是,此方法只适用于 RSS 2.0 版本,但是最新的 RSS 标准是 2.0,所以没有太大的问题。

使用 SimplePie 类添加内容

SimplePie 是用于解析和输出 RSS feed 的 PHP 类库,可以用来添加内容或修改内容。SimplePie 可以用来轻松地解决 RSS feed 扩展中最常见的问题。下面的代码演示如何使用 SimplePie 类获取文章标签并将其添加到 RSS Feed 中:

function add_tags_to_rss() {

global $wp_query;

$rss = new SimplePie();

$rss->set_feed_url( get_bloginfo( 'rss2_url' ) );

$rss->init();

$rss->handle_content_type();

$wp_query->is_feed = true;

$wp_query->feed_image = esc_url( $rss->get_image_url() );

$wp_query->feed_title = get_bloginfo( 'name' ) . ' - Tagged ' . single_tag_title( '', false );

$wp_query->feed_type = $rss->get_type();

$wp_query->posts_per_rss = get_option( 'posts_per_rss' );

header( 'Content-Type: '. feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true );

?>

have_items() ): ?>

the_item(); ?>

<![CDATA[<?php the_title_rss(); ?>]]>

]]>

]]>

get_item_pubdate('Y-m-d H:i:s'); ?>

]]>

get_item_tags( '', 'category' ) as $category ) : ?>

]]>

enable_order_by_date) : ?>

get_item_tags('', 'ordering_date', true ); ?>

get_item_tags('', 'media:content') ) : ?>

get_item_tags('', 'media:content'); ?>

type=""

medium=""

height=""

width=""

/>

exit;

}

add_action( 'do_feed_tag', 'add_tags_to_rss', 10, 1 );

如您所见,对 SimplePie 的初始化和操作过程都包含在 add_tags_to_rss() 函数中。此方法可以在添加任何信息和元素到 RSS feed 中时使用。

结论

在本文中,我们了解了 RSS 以及如何通过添加新的节点和元素或者使用 SimplePie 来扩展 default WordPress RSS Feeds,并且了解到 SimplePie 是解决造成 RSS 扩展最常见问题的绝佳 PHP 类库。为读者提供额外的新闻、文章和内容元素,是在增强互联网在线体验方面发挥有助于的行之有效的办法,希望这篇文章对您有所帮助。

后端开发标签