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专题」