RSS目前还只能算是小众应用,随着QQ邮箱、QZone阅读空间的推出,相信RSS订阅会被更多人接受并使用。在Blog程序中对RSS的依赖要大于CMS程序,RSS订阅数量也作为blogger们衡量自己blog好坏的一个标准,CMS程序一般对此没有过多的追求。
在PHP168中,开启了全站静态的情况下,RSS输出中的地址仍然是动态地址。默认的模板中是没有加入RSS订阅的代码的,可能很多新手甚至不知道PHP168有RSS输出的功能。
本文将就以上问题对PHP168进行一些简单合理的优化。
1、在PHP168模板中加入RSS订阅的代码
打开head.htm模板,在<head></head>之间加入以下代码
- <link rel=“alternate” type=“application/rss+xml” title=“RSS” href=“$webdb[www_url]/do/rss.php?fid=$fid” />
2、修改源文件达到输出静态url的目的
打开do/rss.php,找到66行至74行
- $erp=$Fid_db[iftable][$fid];
- $query = $db->query(“SELECT * FROM {$pre}article$erp WHERE fid=’$fid’ AND yz=1 ORDER BY aid DESC LIMIT 30”);
- while($rs = $db->fetch_array($query)){
- $rs[posttime]=date(“r”,$rs[posttime]);
- print<<<EOT
- <item>
- <title><![CDATA[{$rs[title]}]]></title>
- <description><![CDATA[{$rs[description]}]]></description>
- <link><![CDATA[{$webdb[www_url]}$webdb[path]/bencandy.php?fid={$rs[fid]}&id={$rs[aid]}]]></link>
修改为
- $erp=$Fid_db[iftable][$fid];
- $query = $db->query(“SELECT * FROM {$pre}article$erp WHERE fid=’$fid’ AND yz=1 ORDER BY aid DESC LIMIT 30”);
- while($rs = $db->fetch_array($query)){
- $rs[posttime]=date(“r”,$rs[posttime]);
- if($webdb[NewsMakeHtml]==1){
- global $rsdb,$aid,$fidDB,$fid,$page;
- $rsdb = $rs;
- $aid = $rs[aid];
- $fid = $rs[fid];
- $page = 1;
- $fidDB= $db->get_one(“SELECT * FROM {$pre}sort WHERE fid=’$rs[fid]'”);
- $array= get_html_url();
- $showurl = $array[showurl];
- }else{
- $showurl = replace_url(“$webdb[www_url]$webdb[path]/bencandy.php?fid={$rs[fid]}&id={$rs[aid]}” span>);
- }
- $_fiddb[$fid]++;
- print<<<EOT
- <item>
- <title><![CDATA[{$rs[title]}]]></title>
- <description><![CDATA[{$rs[description]}]]></description>
- <link><![CDATA[{$showurl}]]></link>
关于静态地址的获得参考了 admin/googlemap.php
3、首页输出全站内容
在首页fid为0,这时输出网站的栏目目录,而不是全站内容,这是绝对影响用户体验的。
还是打开do/rss.php,27行至37行
- $query = $db->query(“SELECT * FROM {$pre}sort WHERE fup=0”);
- while($rs = $db->fetch_array($query)){
- print<<<EOT
- <item>
- <title><![CDATA[{$rs[name]}]]></title>
- <description><![CDATA[]]></description>
- <link><![CDATA[{$webdb[www_url]}{$webdb[path]}/list.php?fid={$rs[fid]}]]></link>
- <author><![CDATA[{$rs[admin]}]]></author>
- <category><![CDATA[{$rs[descrip]}]]></category>
- <pubdate><![CDATA[{$time}]]></pubdate>
修改为
- $query = $db->query(“SELECT * FROM {$pre}article WHERE yz=1 ORDER BY aid DESC LIMIT 30”);
- while($rs = $db->fetch_array($query)){
- $rs[posttime]=date(“r”,$rs[posttime]);
- if($webdb[NewsMakeHtml]==1){
- global $rsdb,$aid,$fidDB,$fid,$page;
- $rsdb = $rs;
- $aid = $rs[aid];
- $fid = $rs[fid];
- $page = 1;
- $fidDB= $db->get_one(“SELECT * FROM {$pre}sort WHERE fid=’$rs[fid]'”);
- $array= get_html_url2();
- $showurl = $array[showurl];
- }else{
- $showurl = replace_url(“$webdb[www_url]$webdb[path]/bencandy.php?fid={$rs[fid]}&id={$rs[aid]}”);
- }
- print<<<EOT
- <item>
- <title><![CDATA[{$rs[title]}]]></title>
- <description><![CDATA[{$rs[description]}]]></description>
- <link><![CDATA[{$showurl}]]></link>
- <author><![CDATA[{$rsdb[username]}]]></author>
- <
;category><![CDATA[{$rsdb[keywords]}]]></category> - <pubdate><![CDATA[{$rs[posttime]}]]></pubdate>
4、在大分类中无法正常输出
还没有仔细研究,日后会给出合理解决方案。
rss 在seo方便怎么应用呀
博主:你好!我按照你文章中写的进行了修改和设置,怎么首页上没有一点变化啊,找不到切入rss的任何信息。迷惑中,请帮我解答,谢谢!