创意电子 发表于 2023-7-2 11:16:21

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地图文件

Anonymous 发表于 2023-7-31 19:38:11

66666
页: [1]
查看完整版本: Discuz插件生成sitemap地图增加收录推送的方法