[经验]dede整站RSS订阅自动更新动态输出

2017-04-13 21:01:01 dedecms

我们都知道,dedecms程序自带的RSS只是地图显示,每个栏目需要另外生成,这对于RSS订阅所看到的内容实在是不方便,对于让我们的蜘蛛大人抓取更是啥作用都没起到,实在是伤脑筋。那有没有比较好的办法,可以让RSS直接在根目录显示,并且是动态自动更新呢?

有的,而且也不复杂,

织梦

没有,我们就自己创建PHP形式的RSS文件,让其自动更新。只需要以下三个步骤:

 

1,添加一个RSS模板,文件名为:rss_index.htm,将RSS模板文件保存到模板文件/templets/plus/这个插件目录下。

文件内容为:

<?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}" ?> <rss version="2.0"> <channel> <title>{dede:global.cfg_webname/}</title> <link>{dede:global.cfg_basehost/}</link> <description>{dede:global.cfg_description/}</description> <language>zh_cn</language> <generator>{dede:global.cfg_webname/}</generator> <webmaster>{dede:global.cfg_adminemail/}</webmaster> {dede:arclist row='50' orderby='pubdate' titlelen='200'} <item> <title><![CDATA[[field:title/]]]></title> <link>[field:arcurl/]</link> <category>[field:typename/]</category> <pubdate>[field:pubdate function='strftime("%a,%d%b%Y%H:%M:%S +0800",@me)'/]</pubdate> <description><![CDATA[[field:array runphp='yes']@me = (strpos(@me['litpic'],'defaultpic') ? "": "<a [email=href='%7B@me[%22arcurl%22]%7D']href='{@me["arcurl"]}'[/email] target='_blank'><img [email=src='%7B@me[%22litpic%22]%7D']src='{@me["litpic"]}'[/email] border='0' /><br />"); [/field:array][field:description function='html2text(@me)'/] ... ]]></description> </item> {/dede:arclist} </channel> </rss>

  2,在根目录中添加rss.php文件,文件内容为:

<?php require_once (dirname(__FILE__) . "/include/common.inc.php"); require_once DEDEINC."/arc.partview.class.php"; $pv = new PartView(); $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/plus/rss_index.htm"); header("Content-type:application/xml"); $pv->Display(); ?>

3,在主页index.htm模板的头部标签中添加属性,代码如下: <link rel=”alternate” type=”application/rss+xml” title=”{dede:field.title/}” href="http://www.seo0763.net/rss.php"/> 以上域名请自行修改为自己的域名。

 

然后重新生成全站静态,我们就可以通过浏览器上的RSS源识别按钮即可识别。

或者也可以在网页其它地方,添加A标签形式的订阅链接。

默认情况下,最多调用50个最新的文章,这个方法有个好处时,RSS订阅是动态文件,不需要每次生成,只要有新文章,RSS就会更新的。