typecho sitemap插件添加分类目录、修改时间

天才小帅 2020-02-26 03:25:40 760℃ 0条

typecho可以用地图生成器插件动态生成sitemap.xml,直接访问“网址/sitemap.xml”就可以动态生成网站地图,包含站内所有链接,相当于实时更新,简单省事。实测tpyecho版本 1.1 (17.10.30)有效,没效果出现404的应该是没开启伪静态,不开伪静态的情况下访问/index.php/sitemap.xml即可。

下载地址:

https://plugins.typecho.me/plugins/sitemap-xml.html

这个插件有三个地方不是很理想,一是生成sitemap不包含文章分类,对于以分类为栏目的网站就少了一部分网址;二是目录没有更新时间,独立页面的时间是创建时间,有新评论也不会更新独立页面的时间;三是更新时间用的标准时间,而不是东八区区时。

添加分类

临时的解决方法:

主要用到的代码:

if($a<1){
    echo "\t<url>\n";
    echo "\t\t<loc>".'分类网址'."</loc>\n";
    echo "\t\t<lastmod>".date("Y-m-d H:i:s")."</lastmod>\n";
    echo "\t\t<changefreq>always</changefreq>\n";
    echo "\t\t<priority>0.8</priority>\n";
    echo "\t</url>\n";
}
$a++;

具体方法:

打开/usr/plugins/Sitemap/Action.php,搜索以下内容

foreach($pages AS $page) {

在它下面添加刚才那段代码,注意替换中间的“分类网址”为分类的实际网址,如果有多个分类,就把{}里面的内容复制多次,然后替换“分类网址”。

例如,我的就是

if($a<1){
    echo "\t<url>\n";
    echo "\t\t<loc>".'https://www.geniusxiaoshuai.com/exp'."</loc>\n";
    echo "\t\t<lastmod>".date("Y-m-d H:i:s")."</lastmod>\n";
    echo "\t\t<changefreq>always</changefreq>\n";
    echo "\t\t<priority>0.8</priority>\n";
    echo "\t</url>\n";
    echo "\t<url>\n";
    echo "\t\t<loc>".'https://www.geniusxiaoshuai.com/wisdom'."</loc>\n";
    echo "\t\t<lastmod>".date("Y-m-d H:i:s")."</lastmod>\n";
    echo "\t\t<changefreq>always</changefreq>\n";
    echo "\t\t<priority>0.8</priority>\n";
    echo "\t</url>\n";
    echo "\t<url>\n";
    echo "\t\t<loc>".'https://www.geniusxiaoshuai.com/share'."</loc>\n";
    echo "\t\t<lastmod>".date("Y-m-d H:i:s")."</lastmod>\n";
    echo "\t\t<changefreq>always</changefreq>\n";
    echo "\t\t<priority>0.8</priority>\n";
    echo "\t</url>\n";
    echo "\t<url>\n";
    echo "\t\t<loc>".'https://www.geniusxiaoshuai.com/leisure'."</loc>\n";
    echo "\t\t<lastmod>".date("Y-m-d H:i:s")."</lastmod>\n";
    echo "\t\t<changefreq>always</changefreq>\n";
    echo "\t\t<priority>0.8</priority>\n";
    echo "\t</url>\n";
    echo "\t<url>\n";
    echo "\t\t<loc>".'https://www.geniusxiaoshuai.com/achv'."</loc>\n";
    echo "\t\t<lastmod>".date("Y-m-d H:i:s")."</lastmod>\n";
    echo "\t\t<changefreq>always</changefreq>\n";
    echo "\t\t<priority>0.8</priority>\n";
    echo "\t</url>\n";
}
$a++;

保存,然后访问“网址/sitemap.xml”,这样就添加完成了。

注意:

这个插件可以动态生成,免去的手动更新上传的步骤,还是很方便的。上面的方法只是一个临时解决方法,这样改的话也是有缺点的,比如所有链接都是静态的,如果网站添加、减少或修改了分类别名还要在这里修改,否则会出问题,php技术比较好的可以修改一下,遍历所有目录然后输出。

分类和独立页面的更新时间

这也是一个临时的方法。搜索下面代码

echo "\t\t<lastmod>".date('Y-m-d\TH:i:s\Z',$page['modified'])."</lastmod>\n";

把date('Y-m-dTH:i:sZ',$page['modified'])替换成date("Y-m-d H:i:s")。

这样做也有个缺点,就是分类和独立页面的内容没有更新,每次访问sitemap显示的时间会自动更新。

更新时间修改为东八区区时

在这个php文件最开头,“<?php”的下面添加一行代码

date_default_timezone_set('Etc/GMT-8');

显示的更新时间就会变成我们常用的时间。

另:

这三个地方都不是必须要修改的,而且也都是临时解决方法,各位站长还是根据实际情况取舍。

标签: none

「感觉有帮助?解决了大问题?一键投喂 牛奶/咖啡/冰阔乐!」

天才小帅

(๑>ڡ<)☆哇~太棒了!

使用微信扫描二维码完成支付

非特殊说明,本博所有文章均为博主原创,并遵循CC BY-NC-SA 4.0 协议许可。

评论啦~