pasckr 发表于 2016-5-9 15:33:01

discuz教程:制作门户的百度sitemap的方法




    实现思路:
因为百度sitemap可以提交xml文件,所以我们可以利用discus内置的rss来实现。
实现方法:
1、打开根目录的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';
2、找到 source/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}</title>\n".
         "    <link>{$_G}forum.php</link>\n".
         "    <description>Latest $num articles of all categories</description>\n"
         :
         "    <title>{$_G} - $catname</title>\n".
         "    <link>{$_G}portal.php?mod=list&catid=$rsscatid</link>\n".
         "    <description>Latest $num articles of $catname</description>\n"
      ).
      "    <copyright>Copyright(C) {$_G}</copyright>\n".
      "    <generator>Discuz! Board by Comsenz Inc.</generator>\n".
      "    <lastBuildDate>".gmdate('r', TIMESTAMP)."</lastBuildDate>\n".
      "    <ttl>$ttl</ttl>\n".
      "    <image>\n".
      "      <url>{$_G}static/image/common/logo_88_31.gif</url>\n".
      "      <title>{$_G}</title>\n".
      "      <link>{$_G}</link>\n".
      "    </image>\n";
修改为
echo      "<?xml version=\"1.0\" encoding=\"".$charset."\"?>\n".
      "<urlset>\n";
找到
echo      "    <item>\n".
                        "      <title>".$article['subject']."</title>\n".
                        "      <link>$_G".($rewriteflag ? rewriteoutput('portal_article', 1, '', $article) : "portal.php?mod=view&aid=$article")."</link>\n".
                        "      <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".($rewriteflag ? rewriteoutput('portal_article', 1, '', $article) : "portal.php?mod=view&aid=$article")."</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";
然后访问地址:http://www.moke8.ccom/ portal.php?mod=sitemap即可看到效果,百度sitemap提交这个地址即可。
注意显示条数,可以修改portal_sitemap.php这里:$num = 20;程序默认是显示20条,可根据自己的需要更改。
页: [1]
查看完整版本: discuz教程:制作门户的百度sitemap的方法