WordPress调用站外文章解决方法小结
调用WordPress随机文章、最新文章和热门文章总结:
方法一:
这个外部网站调用WordPress博客文章就不仅仅限于最新文章了,它几乎可以调用所有类型的文章,如最热文章,随机文章、最新评论等等,不过唯一不好的就是速度可能慢点,具体效果可以见秋茄树上文章。
下面说说外部网站调用wordpress博客热门文章列表实现方法:
首先在你要被外部调用文章的网站根目录下建立一个php文件,命名为blog_call.php。
内容如下:
<?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; ?>
如果用下面的代码则可以输出自定摘要输出:其实个人建议用上面的代码,上面的代码输出文章标题就可以了。
<?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; ?>
再在你调用文章的网站上相应页面插入下面的代码:
<?php //该代码放置在需要调用文章内容和列表的地方 $url=http://www.qiuqie.com/blog_call.php; echo file_get_contents( $url ); ?>
ok,成功解决外部网站调用WordPress博客热门文章了。
方法二:
跨站调用其他网站的最新文章的方法也是挺多的,最简单的方式就是直接用WordPress后台集成的feed调用功能,不过这样的缺点就是一般只能站外调用的最新文章放在侧边栏,要在其他页面或者地方调用的话,就不太好办了。那么有没有直接用代码就可以实现跨站调用其他网站的最新文章呢?今天,给大家分享一段代码来实现跨站调用其他网站的最新文章的功能的代码,很简单:复制代码,在合适的位置粘贴代码,然后通过CSS控制样式。
<?php // Get RSS Feed(s) include_once(ABSPATH . WPINC . ‘/rss.php’); $rss = fetch_rss(‘http://feed.feedsky.com/qiuqie’);//在这添加所要调用网站的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进行控制下样式就OK啦。
方法三:
WordPress调用站外文章,用的另外一种方法,不过,调用的速度实在太慢。有时等页面载入好久才能调取文章出来。于是再GG,找到这个方法,备忘。
从wordpress2.8 之后增加了一个fetch_feed函数,它能获取外部RSS Feed,从而显示其它网站的文章。如果你有多个网站,通过fetch_feed函数你就可以相互调用并显示多个网站的文章链接,还可以利用 fetch_feed函数来采集他站的文章,当然这个最好是经站长允许。本文将用最简单的语言来说明其用法。
fetch_feed函数的原型如下
fetch_feed($url)
将其与目前流行的rss解析库SimplePie结合起来使用,代码如下
<?php require_once (ABSPATH . WPINC . ‘/class-feed.php’); $feed = new SimplePie(); $feed->set_feed_url(‘http://feed.feedsky.com/qiuqie’); $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,7) as $item): ?> <li><a href=”<?php echo $item->get_permalink()?>”><?php echo $item->get_title()?></a> <?php endforeach; ?> </li> </ul>
简单说明下:
将feed_url替换。
SimplePie默认的缓存文件夹是根目录的cache文件夹,所以第一步是在网站的根目录下创建一个 777 权限的名为 cache 的文件夹。
get_items(0,7)中的数字“7”为你展示的列表的文章数目。
以上方法只是调用文章的标题,如果想把文章也调用出来,可以在上面的基础下加入以下代码:
$item->get_description()
附上原始文章代码
<?php require_once (ABSPATH . WPINC . ‘/class-feed.php’); $feed = new SimplePie(); $feed->set_feed_url(array(‘http://www.qiuqie.com/feed’,”http://www. qiuqie.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,2) as $item)://2是文章篇数 ?> <li> <a href=”<?php echo $item->get_permalink()?>” rel=”bookmark” title=”<?php echo $item->get_title()?>”><?php echo $item->get_title()?></a><!– 文章标题 –> <br/><?php echo substr($item->get_description(),0,100);?><!– 文章内容,100是调用文章内容的长短–> <?php endforeach; ?> </li> </ul>
文章作者:秋天的茄子