找回密码
 立即注册

[完结] 暴力制作Discuz! X3.4 Sitemap 网站地图

[复制链接]
69伙伴 发表于 2020-12-22 17:05:41 | 显示全部楼层 |阅读模式
需要的直接底部 下附件   可忽略以下笔记内容。


我记得以前有生成xml的。。升级到了3.4反而没了
欺负我读书少,不会弄。

好吧!我承认,我就是不想花钱买插件!

百度的sitemap 提交有很多方式
自动 手动 sitemap文件,其中自动是最方便的。

而今天要弄的是TXT文本!

例子 在一个txt文本列明需要提交的链接地址   
https://www.wgpro.com/forum.php?mod=viewthread&tid=4
https://www.wgpro.com/forum.php?mod=viewthread&tid=6
https://www.wgpro.com/forum.php?mod=viewthread&tid=7

此文本文件需要遵循以下指南:
· 文本文件每行都必须有一个网址。网址中不能有换行。
· 不应包含网址列表以外的任何信息。
· 您必须书写完整的网址,包括 http。
· 每个文本文件最多可包含 50,000 个网址,并且应小于10MB(10,485,760字节)。
如果网站所包含的网址超过 50,000 个,则可将列表分割成多个文本文件,然后分别添加每个文件。
· 文本文件需使用 UTF-8 编码或GBK编码。

这样的好处还有就是方便CDN的刷新提交




我读书少,能动手的就不百度!


说下我的思路,每个主题帖 tid=参数  只要知道参数就能生成所有帖子列表

tid=帖子  整数
first=楼主 只有1 0
subject=帖子标题 空 非空
fid=版块的id 整数

当有了帖子id后就能自己拼链接地址了如 tid保存txt后
2
3
4
5
在每行首增加如下 最后就是完整的地址
https://www.wgpro.com/forum.php?mod=viewthread&tid=

3.png



  1. 从数据库中我们分析得到 first=1 的数据 tid数值 就是帖子参数 如
  2. https://www.wgpro.com/forum.php?mod=viewthread&tid=4
  3. https://www.wgpro.com/forum.php?mod=viewthread&tid=6
  4. https://www.wgpro.com/forum.php?mod=viewthread&tid=7

  5. 顺便看看1-8 是否提示
  6. 抱歉,指定的主题不存在或已被删除或正在被审核

复制代码


验证一次看看上面说的准确性
本帖地址,是截至现在论坛新的一个帖子 (也就是数据库最后一条数据)
倒序排列下 pid 是编号产生一条就+1 中间有空的 是被删除的帖子。
看看pid 是多少 18008 是最后一条数据
在看看 是不是first=1  subject也和帖子主题一致!
至此我们找到了 生成规律

2.jpg


现在处理下sql查询逻辑


流程是什么 ?
基础功能   查询first=1  或者 subject ≠空 则 输出 tid
迭代 v1  功能   查询first=1 并且  fid=参数   输出 tid    fid=版块的id号
这样就能 每个版块生成一个map 在robots.txt 里引导下

基础调式命令  

  1. SELECT  `pid`, `fid` , `tid`,  `first`, `subject` FROM `wgpro_dz`.`pre_forum_post` LIMIT 30;
复制代码


凑合本站可用的查询命令
本站有三个版块 2=极路由 40=笔记 36=回收站(隐藏版 )

(因为这里目前就三个版   fid2 是极路由  40是笔记   还有一个36是垃圾桶 隐藏版  生成id要去除36)

  1. 使用的查询命令                                      版块id  fid = 2 或 fid =40       并且  是楼主
  2. SELECT `tid` FROM `wgpro_dz`.`pre_forum_post` WHERE (fid = 2 or fid = 40 ) AND first = 1 AND invisible = 0 ;
复制代码

因为我的破站 总共也就618 个主题(刨除隐藏的垃圾桶版块)所幸就生成一个文件了

在写帖子的时候,有朋友看见了问我那个sql工具是啥。emm我想说那个是一个很远古的工具SQLyog 8.0 2010年的工具了。。
工具啥的这都不重要,我用phpmyadmin继续演示 这总是都有的

输入上面的 查询命令 之后 快速 保存   texy!text格式
如果有多个版本 就 fid = 2 or fid = 40 or fid = 版块id or fid = 版块id
4.jpg


最后得到一个 pre_forum_post.txt 文件打开后删除前35行 都是结构定义,我们不需要。
最后的文本内容应该是下个样子
  1. |4
  2. |6
  3. |7
  4. |29
  5. |.......
  6. 最后做一次查找替换 查找 | 替换成 http://www.wgpro.com/forum.php?mod=viewthread&tid=
复制代码

至此就得制作好了Sitemap
重命名sitemap.txt 上传到根目录
在修改下 robots.txt 添加 地图指引
robots.txt
User-agent: * 下添加
Sitemap: /sitemap.txt

至此不管咋说,一份地图有了!先用着
php部分就是上面的步骤合集。
稍后直接添加附件 (看标签为完结状态)

php部分用的时候 看里面的说明填写参数

在论坛管理员页面 网址/admin.php?frames=yes&action=misc&operation=cron
新增加一个名字 执行PHP文件 BL_Sitemap.php (这应该是字后php文件的名字 自己改名)

使用说明:
1. 看php内的 说明 填入自己的 参数
2. 上传到 source/include/cron/
3. 更换个自己喜欢的名字
4. 登录后台 工具- 计划任务 添加
5.jpg
5.添加成功后,后面有一个 启动的✔️  勾选后  点提交
6.在添加的最后面有编辑,点开后  任务脚本: 里的名字 就是 你重命名后的名字。
(例 如果没改名 任务脚本:     cron_site_map.php)
7. 最后选择上面的 每周 月日 的定期 执行的时间。
8.生成的 地图文件在跟目录下  例 :网址/sitemap.txt

cron_site_map.rar

1.12 KB, 下载次数: 557

临时交流 ⇨点我留言
【附件·直下】非必要·勿注册

网格·联系我们 ( 京ICP备16001788号|京公网安备 11010502049360号 ) | 网站地图 | 2012- WGPro.CoM |

GMT+8, 2024-10-7 15:52

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表