站外调用WordPress文章列表以及乱码问题

站外调用WordPress文章列表 

一、同一个服务器同一个空间上的调用(注意修改博客程序所在的目录)
[cce]

<?php
define(‘WP_USE_THEMES’, false);
require(‘blog/wp-blog-header.php’); //这里blog改为您博客程序所在目录名
query_posts(‘showposts=10’); //设置显示文章条数
?>
<?php while (have_posts()): the_post(); ?>
<li><a href=”<?php the_permalink(); ?>” target=”_blank”><?php the_title(); ?></a></li>
<?php endwhile; ?>

[/cce]

 

二 、不是同一个数据库、不是同一个空间的网站调用wordpress文章
这个外部网站调用WordPress博客文章就不仅仅限于最新文章了,它几乎可以调用所有类型的文章,如最热文章,随机文章、最新评论等等…

首先在你要被外部调用文章的网站根目录下建立一个php文件,命名为blog_call.php
内容如下:

[cce]
<?php
// Include WordPress
//该文件放置在你要调取的博客的主目录
define(‘WP_USE_THEMES’, false);
require(‘./wp-load.php’);
query_posts(‘showposts=10’);
//这里是调用最新文章,如果是热门文章的话则改为get_most_viewed(“post”,10);当然这得是你的主题安装了热门文章插件,而且这里可以接受几乎wp-kit-cn所有代码.非常方便
?>
<?php while (have_posts()): the_post(); ?>
<li><a href=”<?php the_permalink(); ?>” target=”_blank”><?php echo mb_strimwidth(strip_tags(apply_filters(‘the_title’, $post->post_title)), 0, 50,” “); ?></a></li>
<?php endwhile; ?>
[/cce]
用下面的代码则可以输出自定摘要输出:其实个人建议用上面的代码,上面的代码输出文章标题就可以了。
[cce]
<?php
// Include WordPress
//该文件放置在博客的主目录
define(‘WP_USE_THEMES’, false);
require(‘./wp-load.php’);
query_posts(‘showposts=30′);
?>
<?php while (have_posts()): the_post(); ?>
<h2><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endwhile; ?>
[/cce]

再在你调用文章的网站上相应页面插入下面的代码:
[cce]
<?php
//该代码放置在需要调用文章内容和列表的地方
$url=”http://www.baidu.cn/blog/blog_call.php”;
//改为blog_call.php文件所在路径哦!
echo file_get_contents( $url );
?>
[/cce]

ok,成功解决外部网站调用WordPress博客文章了。

 

三、利用rss输出外部调用wordpress文章列表(我没用过不知道好使不.)
[cce]
<?php
//RSS源地址列表数组
$rssfeed = array(“http://www.3eyes.org/feed”);
//设置编码为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 .= “<li><a href='”.$link.”‘ target=_blank>”.$title.”</a></li>”;
$is_item = 0;
}
//仅读取item标签中的内容
if($is_item==1){
if ($tag == “title”) {$title = $value;}
if ($tag == “link”) {$link = $value;}
}
}
//输出结果
echo $rss_str.”<br />”;
}
?>
[/cce]

 

调用出现乱码的解决方法

论坛、淘客等GBK编码程序调用wordpress utf-8编码中文乱码的解决方法

一些论坛和淘客程序(如淘客帝国)整合wordpress文章系统,因为外部程序是GBK编码,调用Wordpress UTF-8编码时会出现中文乱码,通过PHP的iconv函数可实现不同编码的转换:
[cce]<?php echo iconv(′UTF-8′,′GBK′,mb_strimwidth(strIP_tags(apply_filters(‘the_title’,$post->post_title)), 0, 80,” “)); ?>[/cce]

 

注意:上面代码中可能有全角字符,请注意修改后使用!(不然代码不起作用哦!)