Ethan's Blog

记录和思考

WordPress 通过 RSS 显示其他站点文章和内容

很多时候我们希望能够在自己站点上显示其他优秀网站的文章和内容,比较好的办法是通过对方网站提供的 RSS 来实现,下面说一说 WordPress 通过 RSS 显示其他站点文章和内容的方法。

WordPress 通过 RSS 显示其他站点文章和内容可以通过两种方式来实现第一种是利用程序自带的 RSS 小工具来实现,简单方便。当然这个方法能实现的位置一般来说就是侧边栏的小工具区,如果需要在其他任意地方进行调用的话则需要其他方法实现。

下面介绍通过代码方式实现。功能实现相对简单,使用一个重要函数 fetch_feed。下面是步骤和代码说明。

基本方法

一、在自己主题的 includes 文件夹下建立 fetchrss.php 文件,复制粘贴以下代码:

<?php // Get RSS Feed(s)
include_once(ABSPATH . WPINC . '/feed.php');

// 键入订阅源的地址
$rss = fetch_feed('http://ethanblog.com/feed');

if (!is_wp_error($rss)) : // 检查函数执行是否成功
    // 定义获取文章数量
    $maxitems = $rss->get_item_quantity(5);
    // 建立数量用于遍历
    $rss_items = $rss->get_items(0, $maxitems);
endif;
?>
<ul>
    <?php if ($maxitems == 0) : ?>
    <li><?php _e('No items'); ?></li>
    <?php else : ?>
    <?php // 遍历rss文章.
        ?>
    <?php foreach ($rss_items as $item) : ?>
    <li>
        <a href=”<?php echo esc_url($item->get_permalink()); ?>” title=”<?php printf(__('Posted %s'), $item->get_date('j F Y | g:i a')); ?>”>
            <?php echo esc_html($item->get_title()); ?>
        </a>
    </li>
    <?php endforeach; ?>
    <?php endif; ?>
</ul>

二、在需要显示的地方引入此文件 <?php include(‘includes/fetchrss.php’);?>。然后在需求美观时再相应加上一些样式就好了。

进阶用法

上述步骤和方法对于只是有功能需求,能实现就 ok 的已经很适用了,当然如果还有更多的需求,其实也同样能够通过自定义实现。

之前说到核心函数是 fetch_feed,关于此函数:

基本用法:

参数:$uri(URI) (required)

你想要获取内容的RSS的URI。函数将返回一个标准的SimplePie对象。

实际上,通过这个函数我们获取标准的 simplepie 对象后,能够做的事情就很多了,这个对象的方法和参数相当多,详细可以参看 http://simplepie.org/wiki/reference/start#simplepie_item,简单来说,对应开始贴的代码,我们使用 get_permalink () 、get_title ()、get_date () 获取了超链接、标题和发布时间,只要 rss 源地址提供了足够的内容,然后通过参照 simplepie 对象文档获取更多内容,再把这些内容组织和展示起来,那么无论怎样的需求和自定义自然都不在话下。

相关文章: