Discuz插件生成sitemap地图增加收录推送的方法
DZ论坛插件很多没有sitemap地图生成的功能,这就造成很多用独立插件系统作为首页的网站收录比较差,下面给大家提供一个方法以实现独立插件自身生成sitemap网站地图功能的方法:以可可素材资源库插件为例:
假设我们实现在根目录生成可可素材资源库单独的sitemap文件名字为:sitemap_down.xml
例如:https://www.wxcydz.cc/sitemap_down.xml
将其写入收录文件:robots.txt 里面,
例如:https://www.wxcydz.cc/robots.txt
生成方法:
在根目录新建个sitemap生成的执行文件,比如新建个php空白文件,名字为:sitemap.php
内容复制以下:
注意:请把下面的:
sitemap.xml替换为 你自己想要创建的xml文件名;(记得创建文件的时候把文件编码转成你自己论坛的编码,因为内容包含中文,编码不对可能输出显示乱码!)
https://www.wxcydz.cc/down/item-' . $i . '.html替换为 你自己的域名和素材资源作品的格式结构;(以你实际素材的网址结构为准,这里照着嵌套即可~)
$i <= 1000 这里的 1000 替换为 你素材资源作品的最后一个实际的数字,(在可可素材首页 新鲜发布 点进去第一个,网址的那个数字)
<?php
// 定义 XML 头部和尾部
$start = '<?xml version="1.0" encoding="utf-8"?>' . "\n";
$start .= '<urlset' . "\n";
$start .= 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"' . "\n";
$start .= 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' . "\n";
$start .= 'xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9' . "\n";
$start .= 'http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"' . "\n";
$start .= 'xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">' . "\n";
$end = '</urlset>' . "\n";
// 定义 URL 数组
$urls = array();
// 循环生成 URL
for ($i = 1; $i <= 1000; $i++) {
$url = '<url>' . "\n";
$url .= '<loc>https://www.wxcydz.cc/down/item-' . $i . '.html</loc>' . "\n";
$url .= '<lastmod>' . date('Y-m-d') . '</lastmod>' . "\n";
$url .= '<changefreq>always</changefreq>' . "\n";
$url .= '<priority>1</priority>' . "\n";
$url .= '</url>' . "\n";
$urls[] = $url;
}
// 合并 XML 内容
$xml = $start . implode('', $urls) . $end;
// 判断文件是否存在
if (!file_exists('sitemap.xml')) {
// 如果文件不存在,创建文件并写入内容
file_put_contents('sitemap.xml', $xml);
echo 'Sitemap 生成成功! ' . date('Y-m-d H:i:s');
} else {
// 如果文件存在,尝试修改文件权限为可写
if (chmod('sitemap.xml', 0777)) {
// 如果修改权限成功,写入内容
file_put_contents('sitemap.xml', $xml);
echo 'Sitemap 更新成功! ' . date('Y-m-d H:i:s');
} else {
// 如果修改权限失败,提示错误信息
echo 'Sitemap 文件权限不足,无法更新文件!';
}
}
?>然后你访问http://你的域名/sitemap.php,提示如图:
然后记得写入你的根目录的 robots.txt:
加在最后一行:
Sitemap: https://www.wxcydz.cc/sitemap.xml理论上任何插件都可以上述方法生成插件自己的sitemap地图文件
66666
页:
[1]