不知你是否留意过,每次我们进WordPress后台时,都会显示一些官方的新闻。而这些新闻就是通过RSS来调用的,同样,我们可以收为己用。
当我们有多个站的时候,很可能需要在几个站之间互相调用数据。比如我有两个WordPress博客,我想彼此调用数据,或者我想在WordPress中集成独立微博,或者我有一个论坛,想在论坛里调用WordPress数据,那么,通常,如果通过数据库来调用的话会比较麻烦。
使用RSS来进行外部调用是个不错的选择,如果你两个站都是WordPress,那就更非常简单了。你可能没有注意到,WordPress后台小工具里有个RSS,你只需要填写你站点的RSS地址即可进行调用。
当然,这不只是WordPress,如果你的目标站不是WordPress,但是却想调用你的一个WordPress博客中的数据,方法也很简单,依然是通过RSS输出来调用,前提是你的这个站是也是PHP的。
以下给出的是一段PHP代码,将代码添加在你要调用数据的地方,并设置好RSS地址即可,样式自己定义。
<?php
//RSS源地址列表数组
$rssfeed = array("http://feeds21.feedburner.com/redlogpress",
"http://rss.sina.com.cn/news/allinews/sports.xml",
"http://ent.163.com/special/0003n1K7Q/rss_toutiao.xml");
//设置编码为UTF-8
header('Content-Type:text/html;charset= UTF-8');
for($i=0;$i<sizeof($rssfeed);$i++){//分解开始
$buff = "";
$rss_str="";
//打开rss地址,并读取,读取失败则中止
$fp = fopen($rssfeed[$i],"r") or die("can not open $rssfeed");
while ( !feof($fp) ) {
$buff .= fgets($fp,4096);
}
//关闭文件打开
fclose($fp);
//建立一个 XML 解析器
$parser = xml_parser_create();
//xml_parser_set_option -- 为指定 XML 解析进行选项设置
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
//xml_parse_into_struct -- 将 XML 数据解析到数组$values中
xml_parse_into_struct($parser,$buff,$values,$idx);
//xml_parser_free -- 释放指定的 XML 解析器
xml_parser_free($parser);
foreach ($values as $val) {
$tag = $val["tag"];
$type = $val["type"];
$value = $val["value"];
//标签统一转为小写
$tag = strtolower($tag);
if ($tag == "item" && $type == "open"){
$is_item = 1;
}else if ($tag == "item" && $type == "close") {
//构造输出字符串
$rss_str .= "<a href='".$link."' target=_blank>".$title."</a><br />";
$is_item = 0;
}
//仅读取item标签中的内容
if($is_item==1){
if ($tag == "title") {$title = $value;}
if ($tag == "link") {$link = $value;}
}
}
//输出结果
echo $rss_str."<br />";
}
?>
通过第一种方法给WordPress增加一个独立微博是个很不错的选择。大致思路是你用一个二级域名或子目录建立一个WordPress,推荐使用WordPress p2主题,然后在主站设置好这个子站的RSS地址即可进行调用,呈现微博效果。