利用 fetch_feed 函数,让 WordPress 调用其它网站最新文章

fetch_feed 函数 是用 RSS 功能调用其它支持 RSS 网站内容的功能(大多数网站都支持),下面教大家如何让 WordPress 调用其它网站最新文章:

1.在网站根目录新建一个名为 cache 的文件夹,并且设置权限为 777,作为 RSS 的缓存文件夹。

2.在 sidebar.php 或者 你想要显示 RSS 调用文章的地方插入以下代码:

<?php
require_once (ABSPATH . WPINC . '/class-feed.php');
$feed = new SimplePie();
$feed->set_feed_url(array('http://xiaoyi.vc/feed', 'https://www.xia1ge.com/feed')); //可以添加多个站点feed地址
$feed->enable_order_by_date(false);
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/cache');//缓存文件夹
$feed->init();
$feed->handle_content_type();
?>
<ul>
<?php foreach ($feed->get_items(0,10) as$item)://10是文章篇数 ?>
<li>
<a href="<?php echo $item->get_permalink()?>" rel="bookmark" title="阅读> <?php echo $item->get_title()?>"><?php echo$item->get_title()?></a><!-- 文章标题 -->
<br/><?php echosubstr($item->get_description(),0,180);?><!-- 文章内容 -->
<?php endforeach; ?>
</li>
</ul>

附带CSS样式:

.rss ul li {
width:209px;
white-space:nowrap;
overflow:hidden;
line-height:23px;
}

这样就可以简单实现RSS抓取文章了,但是可能会出现乱码的情况,所以还需要加入识别中文字函数的函数cut_strr

function cut_strr($str,$len) {
 if (strlen($str) <= $len) return $str;  
 $n = 0;
 $tempstr = '';
 for ($i=0; $i<$len; $i++) {
  if (ord(substr($str,$n,1)) > 224) {
   $tempstr .= substr($str,$n,3);  
   $n += 3;  
   $i++; //把一个中文按两个英文的长度计算  
  } elseif (ord(substr($str,$n,1)) > 192) {
   $tempstr .= substr($str,$n,2);  
   $n += 2;  
   $i++; //把一个中文按两个英文的长度计算  
  } else {  
   $tempstr .= substr($str,$n,1);  
   $n ++;  
  }
}
//此处增加strip_tags(),去掉字串中包含 HTML 及 PHP 的标记,返回字符串形式的值,避免输出值中有分段现象造成各种难看  
 $tempstr = strip_tags($tempstr);
return $tempstr.'...';
}

利用 RSS 功能,还可以实现采集文章,小羿 这里是不推荐的哈。

fetch_feed函数官方说明:访问

# 更多WordPress技巧,请关注「WordPress专题

本文方法来源:知更鸟 | synyan