站外调用 WordPress 站点文章方法

89

最近在帮一个朋友的 WordPress 站点改版,遇到了一个问题,具体是这样的:需要在A站的首页或者侧边栏引用B站点的最新文章(A/B站点都是WordPress程序构建)。本来打算用第三方服务,比如wumii的文章调用什么的,但是还是忍不住去折腾了一堆代码。下面请看解决过程:

方法一:

这个方法不局限与最新文章,它几乎可以调用所有类型的文章,如最热文章,随机文章、最新评论等等,不过唯一的缺点就是速度可能慢点。

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

<?php
//该文件放置在你要调取的博客的主目录
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; ?>

如果你要输出文章摘要,可以使用下面的代码:

<?php
//该文件放置在博客的主目录
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; ?>

最后在你需要调用网站文章的那个站点上面,加上如下代码:

<?php
//该代码放置在需要调用文章内容和列表的地方
$url=http://你的博客地址/blog_call.php;
echo file_get_contents( $url );
?>

方法二:

这个方法是最通俗的思路,用 WordPress 的 RSS 功能实现。把下面的代码黏贴到相应地方,然后用 CSS 美化一下就搞定~

<?php // Get RSS Feed(s)
include_once(ABSPATH . WPINC . ‘/rss.php’);
$rss = fetch_rss(‘http://www.aips.me/feed’);//在这添加所要调用网站的Feed地址
$maxitems = 10;
$items = array_slice($rss->items, 0, $maxitems);
?>
<ul>
<?php if (empty($items)) echo ‘<li>No items</li>’;
else
foreach ( $items as $item ) : ?>
<li>
<a href=’<?php echo $item['link']; ?>’
title=’<?php echo $item['title']; ?>’ target=”_blank”>
<?php echo mb_strimwidth($item['title'] , 0, 80, ‘…’) ; ?>
</a>
</li>
<?php endforeach; ?>
</ul>

记得加CSS样式...不然真心没法看!

如果你有设计或者 WordPress 方面的项目需求,可以和我联系 Email:wwwzhouliang@gmail.com。

作者主页 邮箱 微博 腾讯微博 QQ Twitter Facebook Google+

共 89 条评论

  1. 皓子 回复

    这个对我有用,谢谢了

    1. 周良 (文章作者) 回复

      有用就好,不客气的

  2. 皓子 回复

    这个对我有用,谢谢了

    1. 周良 (文章作者) 回复

      有用就好,不客气的

  3. 小V 回复

    话说你这个代码有问题$url=http://你的博客地址/blog_call.php;中的http://你的博客地址/blog_call.php要用单引号括起来,不然引用站点会报错。http://v7v3.com/wpjiaocheng/20130653.html我以前也写过类似的文章,哈哈 比你这个更全面~~~

    1. 周良 (文章作者) 回复

    2. Arlen 回复

      看到了我的凡客主题

      1. 小V 回复

        哈哈,大神写的主题不错啊

  4. 小V 回复

    话说你这个代码有问题$url=http://你的博客地址/blog_call.php;中的http://你的博客地址/blog_call.php要用单引号括起来,不然引用站点会报错。http://v7v3.com/wpjiaocheng/20130653.html我以前也写过类似的文章,哈哈 比你这个更全面~~~

    1. 周良 (文章作者) 回复

    2. Arlen 回复

      看到了我的凡客主题

      1. 小V 回复

        哈哈,大神写的主题不错啊

  5. 电脑爱好者 回复

    还是rss方便 我用的就是这个 不过只能调用最新文章

    1. 周良 (文章作者) 回复

      我还有可以调用随即日志,自定义日志的方法,哈哈

  6. 电脑爱好者 回复

    还是rss方便 我用的就是这个 不过只能调用最新文章

    1. 周良 (文章作者) 回复

      我还有可以调用随即日志,自定义日志的方法,哈哈

  7. 阿城守候 回复

    站外感覺用js方便點吧,可能對seo不太好

    1. 周良 (文章作者) 回复

      js吧。搜索引擎蜘蛛确实不会去爬行,但是网站是给用户看的,而不是做给搜索引擎看的。内容对用户有用,用户自然会去点击

  8. 阿城守候 回复

    站外感覺用js方便點吧,可能對seo不太好

    1. 周良 (文章作者) 回复

      js吧。搜索引擎蜘蛛确实不会去爬行,但是网站是给用户看的,而不是做给搜索引擎看的。内容对用户有用,用户自然会去点击

  9. aladd设计量贩 回复

    <?php include_once(ABSPATH.WPINC.'/rss.php'); wp_rss('http://aoyouni.com/feed', 10); ?>

  10. aladd设计量贩 回复

    <?php include_once(ABSPATH.WPINC.'/rss.php'); wp_rss('http://xxxx.com/feed', 10); ?>

    1. 周良 (文章作者) 回复

      不能用?

  11. aladd设计量贩 回复

    <?php include_once(ABSPATH.WPINC.'/rss.php'); wp_rss('http://xxxx.com/feed', 10); ?>

    1. 周良 (文章作者) 回复

      不能用?

Leave a Reply

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 Required fields are marked *

返回顶部