更多



DeDeCMS RSS全站静态输出的实现方法 不指定

郝聪 , 2011/08/13 00:11 , 建站优化 , 评论(18) , 阅读(12747) , Via 本站原创 | |

DedeCMS自带Rss功能,在管理后台可以生成出一个Rss地图页面,默认是/data/rssmap.html;这个Html地图文件会告知用户每个栏目的rss订阅地址,这个功能很适合栏目及文章较多的网站,但不太适合文章页不多的小型站点;我偏向于使用统一的Rss地址来输出全站所有文章,这样只需推广一个Rss订阅地址即可。

DedeCMS Rss功能所需的程序文件是/plus/rss.php,模板文件是/templets/default/rss.html。

实现DedeCMS Rss全站静态输出的方法

一、、在CMS根目录下中新增rss.php文件,文件代码如下:

PHP代码
        
  1. <?php
  2.     
  3. require_once (dirname(__FILE__) . "/include/common.inc.php");
  4.     
  5. require_once (DEDEINC."/arc.partview.class.php");
  6.     
  7. $pv = new PartView();
  8.     
  9. $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/rss.htm");
  10.     
  11. header("Content-type:application/xml");
  12.     
  13. $pv->Display();
  14.     
  15. ?>  
        

 

二、在默认模板目录(/templetes/default)中新增rss.html模板文件,文件代码如下:

XML/HTML代码
        
  1. <?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}" ?>  
  2.     
  3. <rss version="2.0">  
  4.     
  5. <channel>  
  6.     
  7. <title>RSS订阅-{dede:global.cfg_webname/}</title>  
  8.     
  9. <link>{dede:global.cfg_basehost/}</link>  
  10.     
  11. <description>{dede:global.cfg_description/}</description>  
  12.     
  13. <language>zh-cn</language>  
  14.     
  15. <generator>{dede:global.cfg_webname/}</generator>  
  16.     
  17. <webmaster>{dede:global.cfg_adminemail/}</webmaster>  
  18.     
  19. {dede:arclist row='100' col='1' titlelen='200' orderby='pubdate'}  
  20.     
  21. <item>  
  22.     
  23. <link>/[field:arcurl/]</link>  
  24.     
  25. <title><![CDATA[[field:title function='html2text(@me)'/]]]></title>  
  26.     
  27. <author>[field:writer/]</author>  
  28.     
  29. <category>[field:typename/]</category>  
  30.     
  31. <pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>  
  32.     
  33. <guid>/[field:arcurl/]</guid>  
  34.     
  35. <description><![CDATA[[field:description function='html2text(@me)'/]]]></description>  
  36.     
  37. </item>  
  38.     
  39. {/dede:arclist}
  40.     
  41. </channel>
  42.     
  43. </rss>  

 

三、在后台增加一个单页面,“模板文件名”项中输入第2步中涉及的模板文件rss.htm,早“文件名”中输入未来Rss订阅地址,这里我就直接生成在CMS根目录下了。

 

四、更新一下缓存,并更新刚刚新增的单页面,即可看到全站性的RSS输出,以后很方便的就可以用各种RSS软件去Submit rss地址了。

用DedeCMS建设企业网站,产品页面往往都会直接生成在根目录,而不会生成在栏目目录内,这样操作不仅可以使URL长度变短,而且可以实现所有页面都位于根目录下的扁平化结构,因此,用单页发布产品信息会很普遍;上面谈及的全站性RSS输出的方法是无法提取单页的,所以还需要对rss.html的模板代码进行修改:

XML/HTML代码
        
  1. <?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}" ?>  
  2.     
  3. <rss version="2.0">  
  4.     
  5. <channel>  
  6.     
  7. <title>RSS订阅-{dede:global.cfg_webname/}</title>  
  8.     
  9. <link>{dede:global.cfg_basehost/}</link>  
  10.     
  11. <description>{dede:global.cfg_description/}</description>  
  12.     
  13. <language>zh-cn</language>  
  14.     
  15. <generator>{dede:global.cfg_webname/}</generator>  
  16.     
  17. <webmaster>{dede:global.cfg_adminemail/}</webmaster>  
  18.     
  19. {dede:arclist row='100' col='1' titlelen='200' orderby='pubdate'}  
  20.     
  21. <item>  
  22.     
  23. <link>http://www.wlxs.com.cn[field:arcurl/]</link>  
  24.     
  25. <title><![CDATA[[field:title function='html2text(@me)'/]]]></title>  
  26.     
  27. <author>[field:writer/]</author>  
  28.     
  29. <category>[field:typename/]</category>  
  30.     
  31. <pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>  
  32.     
  33. <guid>http://www.***.com[field:arcurl/]</guid>  
  34.     
  35. <description><![CDATA[[field:description function='html2text(@me)'/]]]></description>  
  36.     
  37. </item>  
  38.     
  39. {/dede:arclist}
  40.     
  41. /********调用单页的代码********/
  42.     
  43. {dede:sql sql='Select * from dede_sgpage order by uptime asc limit 48'}  
  44.     
  45. <item>  
  46.     
  47. <link>http://www.***.com/[field:filename/]</link>  
  48.     
  49. <title><![CDATA[[field:title function='html2text(@me)'/]]]></title>  
  50.     
  51. <author></author>  
  52.     
  53. <category></category>  
  54.     
  55. <pubDate>[field:uptime function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>  
  56.     
  57. <guid>http://www.***.com/[field:filename/]</guid>  
  58.     
  59. <description><![CDATA[[field:body function='html2text(@me)'/]]]></description>  
  60.     
  61. </item>  
  62.     
  63. {/dede:sql}
  64.     
  65. /********调用单页的代码********/
  66.     
  67. </channel>  
  68.     
  69. </rss>  

调用方式:调用后台建立的全部48个单页,并按照发布时间增序排列。

扩展说明:DedeCMS单页文档所在的数据表dede_sgpage(不修改表前缀)包括以下字段:

说明
        
  1. aid 文档号  
  2.     
  3. title 文档标题
  4.     
  5. ismake 静态页面生成
        
  6.     
  7. filename 单页文档的文件名
  8.     
  9. keywords 单页文档的关键字  
  10.     
  11. template 单页文档所用的模板  
  12.     
  13. likeid 文档分类  
  14.     
  15. description 单页文档的描述  
  16.     
  17. uptime 文档文档生成或修改的时间  
  18.     
  19. body 文档文档内容  

利用上述标签,就可以修改模板里的标签代码,以调用不同的数据。

这个方法是调用单页面的通用方法,因为sql方式调用是万能的,比如:你可以在首页调用所有的单页面,或者只调用一个或某几个单页面,只需简单修改下代码即可,比如:

XML/HTML代码
        
  1. {dede:sql sql='Select * from dede_sgpage where aid=1'}
  2.     
  3. <div>
  4.     
  5. <ul>
  6.     
  7. <h5><a href="/[field:filename /]" title="[field:keywords /]">[field:title /]</a></h5>
  8.     
  9. <p>[field:content/]</p>
        
  10.     
  11. </ul>
  12.     
  13. </div>
  14.     
  15. {/dede:sql}  

 



最后编辑: 郝聪 编辑于2011/08/13 00:38
wlz0072 Email
2012/08/16 16:14
学习学习,真心不错!
钢结构 Email
2012/03/27 14:08
第一次来,DEDECMS这几个插件多不错,我喜欢,还在努力学习中,先支持下
福建seo
2012/02/13 22:41
fjseo org博主真了不起,做网站的贵在坚持,细节真的决定成败
heracles-sk Email
2012/02/06 11:59
这个好复杂,
北京婚纱摄影 Email
2011/12/12 10:15
呵呵 不错啊 来看看啊
识字 Email
2011/11/21 08:39
博主真了不起,做网站的贵在坚持,细节真的决定成败
叶子 Email
2011/11/08 00:45
我想问问这种方法如何实现全文输出rss
泰州SEO Email
2011/10/25 20:53
楼主真的是太厉害了,说得也很好
数码相机博客 Email
2011/08/20 22:38
数码相机博客支持博主,欢迎互访
北京SEO Email
2011/08/18 22:51
写的很专业,学习一下。
吊灯吧
2011/08/16 23:07
不错,挺实用的。我的小站:www.diaodengba.com 百度一直不更新收录,不知道什么问题
苏州SEO Email
2011/08/15 11:10
这个要收藏起来 以后肯定用得到 !
破军博客 Email
2011/08/14 03:12
好专业的词汇
单人操作
2011/08/13 10:15
谢谢博主分享这么有用的知识,因为本人最近也开始使用dedecms,这方面的知识很缺乏,谢谢了www.paiju020.com
单人操作
2011/08/13 10:13
我也刚刚玩dedecms,不过都是一些简单的修改,像title,url之类的,像博主这样的大动作却是没有能力做到的,很感激http://www.paiju020.com
woainics Email
2011/08/13 09:23
你太厉害了,也太辛苦了  www.woaiy.com
woainics Email
2011/08/13 09:22
[emot]zan[/emot] 拜读了 不错  我的网站 www.woaiy.com 能帮我看看吗!
seo随笔
2011/08/13 00:16
呵呵,来看看,第一次拜访
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]