用户信息
帖子内容
1 楼
weeya
钻石会员
积分 1148
注册 2010-10-28
     
3.0.1.6版本增加Sitemap 地图功能
此教程基于3.0.1.6版本,其他版本相关代码会不一样,请以版本为主参考相关代码。
增加Sitemap 地图功能我的思路是增加一个首页模块sitemap.php调用文章地址列表,然后用301重定向sitemap.php为sitemap.xml,相关代码参考index.php和index.inc.php

1、根目录增加sitemap.php文件,代码如下
<?php
header('content-type: text/html; charset=utf-8');
function p($p){return is_file($p)? $p: p('../' . $p);}
require_once(p('common/incfiles/jtbc.php'));
echo require_inc_and_get_result(__FILE__);
?>


2、/common/incfiles/增加sitemap.inc.php文件,代码如下
<?php
namespace jtbc;
class ui extends page {
  public static function moduleDefault()
  {
    $tmpstr = tpl::take('index.sitemap', 'tpl');
    $tmpstr = tpl::parse($tmpstr);
    return $tmpstr;
  }
  }
?>


3、/common/template/index.jtbc增加sitemap模板节点

<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
        xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
        {$=transfer('genre=news;type=new;limit=500;baseurl=./;tpl=sitemap-li')}
        {$=transfer('genre=case;type=new;limit=500;baseurl=./;tpl=sitemap-li')}
        {$=transfer('genre=universal/category;type=@order;baseurl=./;tpl=sitemap-list', array('fid' => 0, 'genre' => 'news'))}
        {$=transfer('genre=universal/category;type=@order;baseurl=./;tpl=sitemap-list', array('fid' => 0, 'genre' => 'case'))}
</urlset>

4、/common/template/transfer.jtbc增加调用节点sitemap-li调用文章列表,内容如下

{@}
  <url>
    <loc>https://www.yiisu.com/{$-genre}/{$=htmlEncode($createURL('detail', '{$id}', null, '{$-genre}'))}</loc>
    <lastmod>{$=formatDate('{$time}', '1')}</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url><br>
  {@}


5、/common/template/transfer.jtbc增加调用节点sitemap-list调用分类列表,内容如下

{@}
  <url>
    <loc>https://www.yiisu.com/{$genre}/{$=htmlEncode($createURL('list', '{$id}', null, '{$-genre}'))}</loc>
    <lastmod>{$=formatDate('{$time}', '1')}</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url><br>
  {@}

 
6、现在sitemap.php可以打开了,但sitemap.xml还不能打开。需要301重定向处理一下。
301加上下面的代码
RewriteRule ^sitemap.xml$ sitemap.php


7、网址/sitemap.xml可以访问了。
本帖由 weeya 于 2018-11-06 14:58:08 编辑过
2018-11-06 12:48:54 东莞网站建设 http://www.yiisu.com/