问题

在配置百度站长sitemap.xml的时候,页面会报下面的错误,下面是两种解决的方法;

原因

右击查看网页源代码,会发现在<?xml>前面有个空格,这就是报错的原因。

解决

第一种方法

首先依次关闭所有插件排查原因,若不行的话往下看

打开下面的文件

文件 wp-config.php       //他在网站根目录中找
文件 Functions.php       //它在主题根目录中找

找到并删<?php和?>外面的空白区域

<?php
?>

删除后,您需要更新文件。然后再次尝试查看您的网站站点地图是否处于脱机状态。检查WordPress网站站点地图的结构如下:

《你的域名》/sitemap_index.xml

如果还是不行的话就用第二种方法,我就用的第二种方法

第二种方法

在你的网站根目录创建solvesitemapserror.php文件,代码如下:

<?php
function ___wejns_wp_whitespace_fix($input) {
	/* valid content-type? */
	$allowed = false;

	/* found content-type header? */
	$found = false;

	/* we mangle the output if (and only if) output type is text/* */
	foreach (headers_list() as $header) {
		if (preg_match("/^content-type:\\s+(text\\/|application\\/((xhtml|atom|rss)\\+xml|xml))/i", $header)) {
			$allowed = true;
		}

		if (preg_match("/^content-type:\\s+/i", $header)) {
			$found = true;
		}
	}

	/* do the actual work */
	if ($allowed || !$found) {
		return preg_replace("/\\A\\s*/m", "", $input);
	} else {
		return $input;
	}
}

/* start output buffering using custom callback */
ob_start("___wejns_wp_whitespace_fix");
?>

然后在根目录的index.php文件中引入solvesitemapserror.php文件,如下:

<?php
include("solvesitemapserror.php");//解决站点地图报错问题,引用此文件
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );

/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';

都保存好后访问sitemap.xml看看效果,网上说有99%的成功率,我的就成功了,也祝你成功!

《你的域名》/sitemap_index.xml

总结

XML声明仅在文档的开头允许” ”,所以页面有空格或空行就会报错