分享:不用插件生成一个SITEMAP.XML

基于自己也是PHP小白。开发神马插件,太扯淡了!但是又很想要有SITEMAP。

有时候根据自己的需求,然后动动脑筋就可以完成啦。现在多数的程序都是MOV框架。所以也不用太担心自己改动了什么而导致程序会出错。好了言归正传,看看我的的SITEMAP吧。

演示:http://www.zxnb.com/sitemap.xml

做个这SITEMAP其实很简单

思路:
看到feed 然后灵机一动。这个不就是SITEMAP嘛,改一改是不是就行呢。然后看了百度的SITEMAP要求,要XML格式或TXT格式,貌似这也不是很难嘛。动手。

只需要三步。

1,在WECENTER的源文件下,找到APP文件夹,然后复制FEED文件夹,并改名为SITEMAP。
可以看到FEED文件夹下面只有一个文件main.php。用记事本或其它编辑器打开。修改以下代码:

	public function index_action()
{
TPL::assign('list', $this->model('posts')->get_posts_list('question', 1, 20, 'new', explode(',', $_GET['topic']), $_GET['category']));

TPL::output('global/feed');
}
}

改为:

	public function index_action()
{
TPL::assign('list', $this->model('posts')->get_posts_list('question', 1, 10000, 'new', explode(',', $_GET['topic']), $_GET['category']));

TPL::output('global/sitemap');
}
}


    []20条,改成了显示最新100000。 [/][]global/feed,改成了global/sitemap。 这是为了改模版[/]

这一步就完成了。

2, 复制这个目录下的 /views/default/global/feed.tpl.htm 改名为 sitemap.tpl.htm

打开sitemap.tpl.htm文件,把原来的删掉,改成以下代码:

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<urlset>
<?php foreach($this->list as $key => $val){ ?>
<url>
<loc><?php echo get_js_url('/question/' . $val['question_id']); ?></loc>
<lastmod><?php echo date('Y-m-d', $val['add_time']); ?></lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<?php } ?>
</urlset>


把上面我的网址替换成你自己的就行了。

三,登陆后台,全局设置-》站点功能。
在URL 链接显示样式: -》 自定义路由中加上这个代码:

/sitemap/===/sitemap.xml



OK了,大功告成! 赞一个。

01.jpg



貌似这个方法,即使升级程序也不用担心覆盖了~!哈哈。
已邀请:

zhengqiang - WeCenter 产品经理

赞同来自: sinosoho zxqjhc 大圣SoLo kingthing 粗茶淡范

表示赞!给你一个推荐。@冰洋 @lidanghong @zxqjhc @zhengbao

trumanwang - 问答社区运营交流QQ群:188012349

赞同来自: firezym 小明明

葱白自己动手的人!!!!

seosns - 需要二开朋友,在cike.xiaoer.org.cn提交任务,我接单

赞同来自: lidanghong 流落在黄昏

这是治标不治标的方法,其实可以将话题,文章,用户,以及自定义模块 模型数据拿进来

还可以做一些运算,更新频率,内容,标题,等等,这样搜索引擎抓取爬行更方便

kingthing - 在路上了

赞同来自: firezym

很赞,已经在用了,可能是服务器配置不高的原因,勉强4000条数据,再高就报错了

lidanghong - 服务管理,http://www.langwawa.com

赞同来自:

非常不错,正在使用中,测试可以进入“淘客360管理服务网 : http://www.taoke360.com/sitemap.xml

zxqjhc - 没有积分卡

赞同来自:

非常感谢非常感谢,聪明人

罗宾

赞同来自:

求楼主回来把这个代码补全下呢。现在的只能加问答的,不能加文章的模块。

hydeist - 自媒体营销导师微信号:QQ80097595

赞同来自:

最好让百度站长工具合作一把,或者是百度知道开放平台。
 
毕竟DISCUZ跟百度站长工具的抓取工具就是不错的!
 
 

jianson2006 - 喜欢用男人号,学习写代码!

赞同来自:

哎,我对这种无私的技术男心感敬佩。

四维郎 - 酒搭网:www.jiuda.cc

赞同来自:

是不是需要开启伪静态?

打嗝网 - http://www.apphelp8.com 苹果帮助中心

赞同来自:

本地测试未成功 

星仔⊙﹏⊙☀

赞同来自:

不错!支持!!!!

tongxincai005

赞同来自:

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<urlset>
    <url>
        <loc>http://www.xxx.com&lt;/loc&gt;
        <changefreq>daily</changefreq>
        <priority>1.0</priority>
    </url>
    <url>
        <loc>http://www.xxx.com/topic/&lt;/loc&gt;
        <changefreq>weekly</changefreq>
        <priority>0.9</priority>
    </url>
    <?php foreach($this->list as $key => $val){ ?>
    <url>
        <loc><?php echo get_js_url('/question/' . $val['question_id']); ?></loc>
        <lastmod><?php echo date('Y-m-d', $val['add_time']); ?></lastmod>
        <changefreq>daily</changefreq>
        <priority>0.8</priority>
    </url>
    <?php } ?>
</urlset>

四道口的喵 - 地铁生活网:http://www.subwaylife.net

赞同来自:

根据帖子改进成了包含文章和问题的sitemap。可正常使用啦
可惜发布了外链啊

7妈妈 - 亲子育儿网站-7妈妈www.7mama.com

赞同来自:

不错,现在修改上线

锋酱

赞同来自:

提交谷歌的话,改成这样:<urlset xmlns="ht去掉这里tp://w去掉这里ww.site去掉这里maps.org/schemas/sitemap/0.9"> 

jhjh626

赞同来自:

测试111121212

wanjutan

赞同来自:

留脚印。不错!支持!!!!

Maps

赞同来自:

支持一下

爱收藏

赞同来自:

把上面我的网址替换成你自己的就行了。



这段意思没懂?需要替换的网址是哪一段啊?

Liv - http://www.51ask.org/

赞同来自:

顶顶顶顶

风吹散流年

赞同来自:

坑爹啊
根本不行,坑人

苏逸融

赞同来自:

不错。。。。。。。。。。。

该问题目前已经被锁定, 无法添加新回复