set_file_class('WP_SimplePie_File'); $" />如何将PageCookery的内容调用到WordPress – 少龙代理™

首页 » 建站技术 » WordPress » 浏览内容

如何将PageCookery的内容调用到WordPress


2011-11-02 20:27:51 2,263 0 发表评论 字体: 作者:C.K.
标签: PageCookeryWordPress备忘

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。
<?php
  •     require_once (ABSPATH . WPINC . '/class-feed.php');
  •     $feed = new SimplePie();
  •     $feed->set_feed_url('http://t.linji.cn/rss.xml');
  •     $feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/wp-content/cache');//缓存的目录
  •     $feed->set_file_class('WP_SimplePie_File');
  •     $feed->set_cache_duration(10);//设置缓存时间(10秒),这个各有所好
  •     $feed->init();
  •     $feed->handle_content_type();
  •     $items = $feed->get_items(0,1);//显示最新的1篇文章
  •     foreach($items as $item) {
  •         echo '<a style="TEXT-DECORATION:none" href="'.$item->get_link().'" target="_blank" title="回复他">'.'<div style="podding:20px;">'.$item->get_description().'</a>'.'</div>';
  • }
  • ?>
  • /* 微博 */
  • .image img {
  • width: 218px;
  • height: auto;
  • }
  • 如代码所示,原理就是应用WP的fetch_feed函数来读取PageCookery微博的RSS内容。操作时,只需将这段代码插入到你的WP模板中即可。当然,有一些调用参数需要自己视情况设定。如:
    set_cache_duration(3600); 这一句意思是每隔3600秒读取一次RSS,看是否有内容更新;
    get_items(0,1); 这一句的作用是控制显示多少条微博;
    echo $item->get_description(); 这一句echo后面写的是希望显示的内容

    OK了,完成以上操作后,可以再调整一下样式表,修改为自己喜欢的样式。但要是对所显示的内容不满意,还可以到PageCookery的对应目录中修改cron/rss_update.php文件,来变更RSS的显示内容。
    另外,预防在调用中出现“Warning: ./cache/791730c068090a99527392a2d75c1392.spc is not writeable in /home/jcom/public_html/yourtion/wp-includes/class-simplepie.php on line 1780”的错误提示,所以在上面代码中插入如下代码——

    $feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/wp-content/cache');


    也可以这样显示:

    foreach($items as $item) {
  •  $title = $item->get_title();
  •  $link = $item->get_link();
  •  $time = $item->get_date("Y-m-d h:m");
  •  echo '<li>'.$title.'<a target="_blank" style="color:#0AA" href="'.$link.'">( '.$time.' )</a></li>' ;
  • }
  • echo '</div>';}
  • .weibo_rss li{margin:10px 15px -4px 15px;padding-bottom:6px;word-break:break-all;line-height:20px;border-bottom: 1px solid #ddd}
  • .weibo_rss li a{ display:inline-block;color:red;}
  • 或者这样显示:

     echo '<div class="weibo_rss"><h3><span>WeiBo</span></h3>';
  • foreach($items as $item) {
  •  $title = $item->get_title();
  •  $link = $item->get_link();
  •  $time = $item->get_date("Y-m-d h:m");
  •  echo '<li>'.$title.'<a href="'.$link.'">( '.$time.' )</a></li>' ;
  • }
  • echo '</div>';} ?>
  • .weibo_rss li
  • {
  •     margin:10px 15px -4px 15px;
  •     padding-bottom:6px;
  •     word-break:break-all;
  •     line-height:20px;
  •     border-bottom: 1px solid #ddd
  • }
  • .weibo_rss li a
  • {
  •     display:inline-block;
  •     color:red;
  • }
  • 缓存机制:
    SimplePie检查该feed是否已经缓存:
    1、如果该feed已经缓存,并且没有过期的话,就使用缓存的feed
    2、如果该feed没有缓存,SimplePie就抓取该feed并缓存下来
    3、如果该feed已经缓存,但是已经过期(比如上例中已经超过设置的20分 钟),SimplePie就使用HTTPCG技术向feed源发送请求,询问是否有更新:如果有更新,就使用新内容并重新缓存;如果没有更新就使用缓存的内容并重新设置缓存过期时间。

    调用的时候可能用到的参数:

    $item->get_title() //显示标题
    $item->get_link()//显示文章链接
    $item->get_author() //显示作者信息
    $item->get_date()//显示发布日期
    $item->get_description() //显示文章内容

      网站统计 Statistics

      • 创建时间: 2005年1月3日 距今4761 天
      • 日志总数: 2461
      • 评论总数: 630
      • 标签总数: 654
      • 链接总数: 273
      • 最后更新: 2017-7-1 18:16:33
      • 您是本站第 13193943 位访客

      广告区 Guǎng Gào