WordPress 站点地图报 XML declaration 错误的修复方法

图片[1]-WordPress网站XML地图报错修复的方法-本站

站点地图(sitemap.xml)是搜索引擎收录里绕不开的一环。地图文件生成好之后,直接在浏览器打开,有时会报一个 XML 相关的错误,导致整张地图无法被解析。

报错长什么样

典型的报错文本是这一句:

error on line 1 at column 6: XML declaration allowed only at the start of the document

它的含义是:第 1 行第 6 个字符处出现了 XML 声明,但声明必须放在文档最开头。多数情况下问题并不出在 sitemap 本身,而是根目录某个 PHP 文件在 <?php 之前多输出了空白(空行、空格或 BOM),这些空白被当成正文先吐出来,把真正的 XML 声明挤到了后面。

修复思路

打开网站根目录的 wp-blog-header.php,用下面的内容整体替换掉文件里的代码,关键是在加载 WordPress 库、执行查询的前后各做一次输出缓冲区控制:

<?php
if ( ! isset( $wp_did_header ) ) {
    $wp_did_header = true;ob_start();
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
    // Set up the WordPress query.
    wp(); ob_end_clean();
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
}

替换后保存文件,再刷新站点地图链接,报错一般就消失了。动手前先把原文件备份一份,万一改错能直接还原。

还是不行就继续排查空白字符

如果替换后依然报错,就挨个检查根目录里会被频繁引用的 PHP 文件,尤其是 wp-config.php:确认 <?php 之前没有任何空行,并且文件保存为不带 BOM 的 UTF-8 编码。用编辑器的“显示不可见字符 / 显示空白”功能最容易看出多余的空白。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容