创意电子 管理员
  • 最佳新人

    注册账号后积极发帖的会员
  • 活跃会员

    经常参与各类话题的讨论,发帖内容较有主见
  • 1419发帖数
  • 1327主题数
  • 2关注数
  • 17粉丝
开启左侧

Discuz插件生成sitemap地图增加收录推送的方法

[复制链接]
 楼主| 创意电子 发表于 2023-7-2 11:16:21 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
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 替换为 你素材资源作品的最后一个实际的数字,(在可可素材首页 新鲜发布 点进去第一个,网址的那个数字)
  1. <?php

  2. // 定义 XML 头部和尾部
  3. $start = '<?xml version="1.0" encoding="utf-8"?>' . "\n";
  4. $start .= '<urlset' . "\n";
  5. $start .= 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"' . "\n";
  6. $start .= 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' . "\n";
  7. $start .= 'xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9' . "\n";
  8. $start .= 'http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"' . "\n";
  9. $start .= 'xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">' . "\n";
  10. $end = '</urlset>' . "\n";

  11. // 定义 URL 数组
  12. $urls = array();

  13. // 循环生成 URL
  14. for ($i = 1; $i <= 1000; $i++) {
  15.     $url = '<url>' . "\n";
  16.     $url .= '<loc>https://www.wxcydz.cc/down/item-' . $i . '.html</loc>' . "\n";
  17.     $url .= '<lastmod>' . date('Y-m-d') . '</lastmod>' . "\n";
  18.     $url .= '<changefreq>always</changefreq>' . "\n";
  19.     $url .= '<priority>1</priority>' . "\n";
  20.     $url .= '</url>' . "\n";
  21.     $urls[] = $url;
  22. }

  23. // 合并 XML 内容
  24. $xml = $start . implode('', $urls) . $end;

  25. // 判断文件是否存在
  26. if (!file_exists('sitemap.xml')) {
  27.     // 如果文件不存在,创建文件并写入内容
  28.     file_put_contents('sitemap.xml', $xml);
  29.     echo 'Sitemap 生成成功! ' . date('Y-m-d H:i:s');
  30. } else {
  31.     // 如果文件存在,尝试修改文件权限为可写
  32.     if (chmod('sitemap.xml', 0777)) {
  33.         // 如果修改权限成功,写入内容
  34.         file_put_contents('sitemap.xml', $xml);
  35.         echo 'Sitemap 更新成功! ' . date('Y-m-d H:i:s');
  36.     } else {
  37.         // 如果修改权限失败,提示错误信息
  38.         echo 'Sitemap 文件权限不足,无法更新文件!';
  39.     }
  40. }

  41. ?>
复制代码
然后你访问  http://你的域名/sitemap.php,提示如图:


然后记得写入你的根目录的 robots.txt
加在最后一行:
  1. Sitemap: https://www.wxcydz.cc/sitemap.xml
复制代码
理论上任何插件都可以上述方法生成插件自己的sitemap地图文件

精彩评论1

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
在线客服邮箱
wxcy#wkgb.net

邮箱地址#换为@

Powered by 创意电子 ©2018-现在 专注资源实战分享源码下载站联盟商城