首页 » 开源CMS » Discuz » 正文

免插件制作discuz门户站点地图sitemap

一般人喜欢使用插件来实现discuz门户的sitemap,本篇文章保哥教你怎么利用discus内置的rss来实现门户sitemap.xml

编辑器打开根目录portal.php文件,查找以下代码:

if(empty($_GET['mod']) || !in_array($_GET['mod'], array('list', 'view', 'comment', 'portalcp', 'topic', 'attachment', 'rss', 'block'))) $_GET['mod'] = 'index';

修改为:

if(empty($_GET['mod']) || !in_array($_GET['mod'], array('list', 'view', 'comment', 'portalcp', 'topic', 'attachment', 'rss', 'block', 'sitemap'))) $_GET['mod'] = 'index';

将ource/module/portal/portal_rss.php复制一份,并重命名为:portal_sitemap.php

编辑器打开portal_sitemap.php查找:

echo "<?xml version=\"1.0\" encoding=\"".$charset."\"?>\n".
"<rss version=\"2.0\">\n".
" <channel>\n".
(count($catarray) > 1 ?
" <title>{$_G[setting][bbname]}</title>\n".
" <link>{$_G[siteurl]}forum.php</link>\n".
" <description>Latest $num articles of all categories</description>\n"
:
" <title>{$_G[setting][bbname]} - $catname</title>\n".
" <link>{$_G[siteurl]}portal.php?mod=list&catid=$rsscatid</link>\n".
" <description>Latest $num articles of $catname</description>\n"
).
" <copyright>Copyright(C) {$_G[setting][bbname]}</copyright>\n".
" <generator>discuz! Board by Comsenz Inc.</generator>\n".
" <lastBuildDate>".gmdate('r', TIMESTAMP)."</lastBuildDate>\n".
" <ttl>$ttl</ttl>\n".
" <image>\n".
" <url>{$_G[siteurl]}static/image/common/logo_88_31.gif</url>\n".
" <title>{$_G[setting][bbname]}</title>\n".
" <link>{$_G[siteurl]}</link>\n".
" </image>\n";

修改为:

echo "<?xml version=\"1.0\" encoding=\"".$charset."\"?>\n".
" <urlset>\n";

查找:

echo " <item>\n".
" <title>".$article['subject']."</title>\n".
" <link>$_G[siteurl]".($rewriteflag ? rewriteoutput('portal_article', 1, '', $article[aid]) : "portal.php?mod=view&aid=$article[aid]")."</link>\n".
" <description><![CDATA[".dhtmlspecialchars($article['description'])."]]></description>\n".
" <category>".dhtmlspecialchars($article['catname'])."</category>\n".
" <author>".dhtmlspecialchars($article['author'])."</author>\n".
($attachfile ? '<enclosure url="'.$filename.'" length="'.$attachsize.'" type="image/jpeg" />'."\n" : '').
" <pubDate>".gmdate('r', $article['dateline'])."</pubDate>\n".
" </item>\n";

修改为:

echo " <url>\n".
" <loc>$_G[siteurl]".($rewriteflag ? rewriteoutput('portal_article', 1, '', $article[aid]) : "portal.php?mod=view&aid=$article[aid]")."</loc>\n".
" <lastmod>".date('Y-m-d', $article['dateline'])."</lastmod>\n".
" <changefreq>daily</changefreq>\n".
" <priority>1.0</priority>\n".
" </url>\n";

查找:

echo " </channel>\n".
"</rss>";

修改为:

echo " </urlset>\n";

//注释:注意显示条数,可以修改portal_sitemap.php这里:$num = 20; 程序默认是显示20条,可根据自己的需要更改。

总结:通过以上方法修改后,访问站点地址例如:www.xxxx.com/portal.php?mod=sitemap,即可看到效果。百度sitemap提交这个地址即可。

发表评论