如何禁止AutoAnchor Menu插件修改Joomla中OSMAP生成的XML站点地图
修复思路
在插件的核心执行逻辑前增加请求场景判断,识别到OSMap输出XML站点地图的场景时直接终止插件执行,不会影响插件在其他正常页面的锚点生成功能。
操作步骤
- 插入判断代码
打开你找到的两个AutoAnchor Menu插件相关PHP文件,在输出div标签的核心方法最开头加入以下代码:
// 跳过OSMap XML站点地图页面的插件处理 $app = JFactory::getApplication(); // 仅校验前台请求 if ($app->isClient('site')) { $input = $app->input; // 判断是否为OSMap的XML格式站点地图请求 if ($input->getCmd('option') === 'com_osmap' && $input->getCmd('view') === 'xml' && $input->getCmd('format') === 'xml') { return; } }
如果插件是通过onAfterRender事件挂载输出逻辑,直接把这段代码加在onAfterRender方法的第一行即可。
- 验证修改效果
- 保存文件后清空Joomla全站缓存
- 直接访问OSMap生成的XML站点地图链接,右键查看源码,确认开头已无冗余的
<div class="auto-anchor-start-marker" style="display:none"></div>代码 - 前往Google Search Console重新提交站点地图,确认格式校验通过
注意事项
- 后续升级AutoAnchor Menu插件时,需要重新添加这段判断逻辑,避免升级时被官方代码覆盖
- 该判断仅拦截XML格式的站点地图请求,不会影响OSMap生成的HTML站点地图,也不会影响插件在普通文章页的锚点菜单生成功能
内容的提问来源于stack exchange,提问作者user4459292
相关产品推荐
相关产品推荐

