织梦教程:定时生成站点地图sitemap.xml(转+优化)

这是一篇介绍dedecms如何定时生成站点地图的文章,定时生成首页也是这个思路,这里用到了dedecms后台的计划任务功能来完成。
下面就正是开始完成此功能:

.首先在模板目录放一个sitemap.xml的模板文件。内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
    <loc>/</loc>
    <lastmod>{dede:arclist row=1 titlelen=24 orderby=pubdate}
    [field:pubdate function=strftime('%Y-%m-%d',@me)/]
    {/dede:arclist}</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
</url>
{dede:channel row='10' type='top'}
<url>
<loc>[field:typelink /]</loc>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
{/dede:channel}
{dede:arclist row=2000 orderby=pubdate}
<url>
    <loc>[field:arcurl/]</loc>
    <lastmod>[field:pubdate function=strftime('%Y-%m-%d',@me)/]</lastmod>
    <changefreq>monthly</changefreq>
</url>
{/dede:arclist}
</urlset>

.写一个计划任务文件命名为generate_sitemap.php,放在/plus/task目录里,文件内容如下:

<?PHP
//定时生成网站地图
require_once(dirname(__FILE__).'/../../include/common.inc.php');
include(DEDEINC."/arc.listview.class.php");

$lv = new ListView();

//解析模板到字符串
$lv->PartView = new PartView($lv->TypeID,false);
$lv->PartView->SetTypeLink($lv->TypeLink);
$lv->PartView->SetTemplet(DEDETEMPLATE.'/2012/sitemap.xml');
//上面的这个2012改成你自己的模板的目录
$html = $lv->PartView->GetResult();

file_put_contents('../../sitemap.xml',$html);
?>

.在后台添加计划任务,系统——计划任务管理——增加新任务:
任务名称:定时生成网站地图
运行程序:generate_sitemap.php
执行时间自己设置
其他默认即可。
如图所示
这里写图片描述

.在模板目录的foot.hml文件或其他公共include文件body结束之前加上代码:

这里写图片描述

.在计划任务规定的时间内浏览一下网页来触发计划任务文件执行。如果上次运行时间的时间正常就证明定时任务执行成功。
OK! 定时生成网站地图(sitemap.xml)功能结束,你可以在百度站长平台里提交这个网站地图文件,百度robot会更喜欢你的网站!

如果您不想定时生成,因为计划任务占用服务器资源比较多,那么你可以自动实时生成站点地图,可以看看这篇文章《提升网站 建设效果之自动生成站点地图sitemap.xml 》

生成网站的 sitemap.xml 文件可以帮助搜索引擎更好地抓取和索引您的网站内容,从而提高您的 SEO 优化效果。下面是使用 Node.js 动态生成网站 sitemap.xml 的方法: 1. 安装依赖 首先,您需要安装 `xmlbuilder` 模块,它是一个轻量级的 XML 创建器,可以用于动态生成 XML 文件。 ``` npm install xmlbuilder --save ``` 2. 生成 sitemap.xml 文件 在您的 Node.js 项目中创建一个生成 sitemap.xml 文件的脚本文件,并编写以下代码: ```javascript const fs = require('fs'); const xmlbuilder = require('xmlbuilder'); const baseUrl = 'https://www.example.com'; // 网站页面的 URL 列表 const urls = [ '/', '/about', '/services', '/blog', '/contact' ]; // 创建 sitemap.xml 文件 const root = xmlbuilder.create('urlset', { version: '1.0', encoding: 'UTF-8' }); root.att('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); urls.forEach(url => { const loc = baseUrl + url; const urlNode = root.ele('url'); urlNode.ele('loc', {}, loc); }); const xml = root.end({ pretty: true }); fs.writeFileSync('sitemap.xml', xml, 'utf8'); console.log('Sitemap generated successfully!'); ``` 在上面的代码中,我们首先定义了一个 `baseUrl` 变量,用于存储网站的基础 URL,然后定义了一个 `urls` 数组,用于存储网站页面的 URL 列表。 接着,我们使用 `xmlbuilder` 模块创建了一个 XML 文件的根节点 `urlset`,并设置了其命名空间。然后,我们遍历 `urls` 数组,为每个页面创建一个 `url` 节点,并添加一个 `loc` 子节点,用于存储页面的 URL。 最后,我们使用 `fs` 模块将生成XML 内容写入到 `sitemap.xml` 文件中,并在控制台输出成功信息。 3. 集成到网站 生成 sitemap.xml 文件后,您需要将其添加到您的网站根目录下,并在网站的 robots.txt 文件中添加以下代码: ``` Sitemap: https://www.example.com/sitemap.xml ``` 这将告诉搜索引擎您网站的 sitemap.xml 文件的位置,以便更好地抓取和索引您的网站内容。 通过以上几步,您就可以使用 Node.js 动态生成网站 sitemap.xml 文件,并优化您的 SEO 效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值