代码如诗!玩多了WordPress就慢慢发现她的美丽了,怪不得这玩意儿整天把万戈等一大堆童鞋迷的神魂颠倒的,搞得我现在非常想折腾到WordPress去。P话少说,俺从大概是从WordPress2.5开始接触她的,不过装了删、删了装一段时间后我决定用Zblog写博客的最大原因以前不知道怎么外部调用WordPress,俺还梦想着有哪位大侠肯把调用俺的博客呢!最近优化外贸网站的时候又遇到了这个问题,比较杯具的是安装WordPress的主机和主网站的主机不在同一个机房,自己写调用远程数据库的代码严重影响主网站打开速度;更杯具的是还不能使用比较简单的JavaScript输出,不然我还做个毛优化啊!
经过一番Google找出以下三种方法,可以在外部网站和外部页面调用WordPress的数据。方法不同,网站应用的目的也不同,所以选择的方法也不同。
利用第三方RSS and Atom Feed Framework调用WordPress
我使用的是这种方法,好处是调用代码是静态的,而非HTML代码。步骤如下,下载SimplePie Plugin for WordPress或者下载SimplePie最新版,将“simplepie.inc”上传到主机相应的目录,然后在需要调用的地方粘贴下面的代码即可(以万戈的Rss地址为例)。
<?php
require_once('simplepie.inc');
$feed = new SimplePie();
$feed->set_feed_url('http://wange.im/feed');
$feed->init();
echo '<ul>';
$i = 1;foreach($feed->get_items() as $item){
if($i<15){
echo '<li><a href="'.$item->get_permalink().'">'.$item->get_title().'</a><br />'. "\n";
echo substr($item->get_description(),0,180).'...</li>'."\n";
$i++; }}
echo '</ul>';
?>
当然,可以根据自己的需要修改这个代码的。
使用Feed2JS生成调用的JavaScript代码
在线生成地址:http://tools.feiyan.info/feed2js
这是老外做的一款工具,俺把首页翻译出来了。原理是调用Feed然后转换成JavaScript输出,可选项比较多,并且可以自定义Css样式表。不好的地方时JavaScript,不讨SEOer的喜欢。但是应用范围很广泛,使用起来也很简单,我就不多写了。
第三种方法:同一个空间内调用WordPress文章的方法
很多人把blog装在二级目录,需要引用blog文章的时候只需要在引用的页面加入
<?php
define('WP_USE_THEMES', false);
require('./blog/wp-blog-header.php');
query_posts('showposts=1');
?>
当然了为了调用不同的数据我们还可以增加下面的代码
<?php
while (have_posts()): the_post();
?>
<h2><?php the_title(); ?></h2>
<?php the_excerpt(); ?>
<p><a href="<?php the_permalink(); ?>">Read more...</a></p>
<?php endwhile; ?>
个性化的查询可以参考WordPress文档:http://codex.wordpress.org/Template_Tags/query_posts,这个方法我找到的地址是:http://www.corvidworks.com/articles/wordpress-content-on-other-pages,懒得翻译了,英文可以的去看下。
外部网站要调用的页面支持PHP的选用第二种方法比较好,不支持的使用第一种方法的JavaScript,同一网站不同目录下使用第三种方法。