• 懒鸟飞:精品网站源码、帝国cms模板专业分享平台

如何从WP的RSS中调出html格式的帖子

      很多网站在一级目录下放置博客并提供RSS内容订阅,如在www.example.com/根目录下放置主站,在www.example.com/blog/下放置博客,本文分享“如何将WordPress中的RSS生成html列表以供根目录下的网站调用”起到根目录内容实时更新的作用(参见如何从论坛调出html格式的帖子)。以www.xueyueyu.com为例,其RSS地址为http://www.xueyueyu.com/feed/,现在我们要把这个RSS内容处理生成html格式的列表并每天更新至newposts.htm(博客目录下)。实现方法如下:
在博客当前主题目录下的functions.php内添加如下代码:
  1. add_action('my_daily_event', 'do_this_daily');
  2. function my_activation() {
  3.         if ( !wp_next_scheduled( 'my_daily_event' ) ) {
  4.                 wp_schedule_event(time(), 'daily', 'my_daily_event');
  5.         }
  6. }
  7. add_action('wp', 'my_activation');
  8. function do_this_daily() {
  9.   $doc = new DOMDocument();
  10.   $doc->load('http://www.xueyueyu.com/feed/'); /*修改为你自己的RSS地址*/
  11.   $newhtml = '';
  12.   foreach ($doc->getElementsByTagName('item') as $node) {
  13.           $link = $node->getElementsByTagName('link')->item(0)->nodeValue;
  14.           $title = $node->getElementsByTagName('title')->item(0)->nodeValue;
  15.           $newhtml .= '<li><a target="_blank" href="'.$link.'">'.$title.'</a></li>';
  16.   }
  17. /*生成最新文章列表到博客根目录的newposts.htm文件中*/
  18. $newfile="newposts.htm";
  19. $file = fopen ($newfile, "w");
  20. fwrite($file, $newhtml);
  21. fclose ($file);}
上传完成后刷新一次博客,即可在博客目录生成newposts.htm地址如下http://www.xueyueyu.com/newposts.htm,并会在每天更新此文件,可根据自己需要更改wp_schedule_event(time(), 'daily', 'my_daily_event')中的daily为hourly,weekly, fortnightly等来配置更新频率。

这样,便可以在网站任意地方展示通过一段代码来展示博客最新文章,调用方法与如何从论坛调出html格式的帖子跟帖所述类似。
另外对于所有提供RSS内容的php网站(不限于WP),均可以采用上述PHP代码生成html列表文档。
  1.  

  2. <?php

  3.   $doc = new DOMDocument();

  4.   $doc->load('http://www.xueyueyu.com/feed/');

  5.   $newhtml = '';

  6.   foreach ($doc->getElementsByTagName('item') as $node) {

  7.           $link = $node->getElementsByTagName('link')->item(0)->nodeValue;

  8.           $title = $node->getElementsByTagName('title')->item(0)->nodeValue;

  9.           $newhtml .= '<li><a target="_blank" href="'.$link.'">'.$title.'</a></li>';

  10.   }

  11. /*echo直接返回html列表代码 */

  12. echo $newhtml;

  13. /*生成htm文件,可以根据需要选择直接返回html代码或生成htm文件*/

  14. $newfile="newposts1.htm";

  15. $file = fopen ($newfile, "w");

  16. fwrite($file, $newhtml);

  17. fclose ($file);

  18. ?>

php直接返回html代码示例:http://www.xueyueyu.com/rss.php
php生成htm文件示例:http://www.xueyueyu.com/newposts1.htm
注:echo返回的htm是实时更新的;生成html需要定期执行php代码才能更新htm文件,方法不统一。
没想到有那么多朋友没有理解,看来文笔还是有点差啊,如果执行过程中有问题的话可以加我的QQ:155381263
 
QQ在线咨询
QQ客服
淘宝官网