WP網站地圖XML報錯This page contains the following errors:

"无问西东"發表於2024-06-15

今天突然發現網站地圖https://www.123how.com/sitemap.xml生成出錯,報錯內容:

This page contains the following errors: error on line 3 at column 6: XML declaration allowed only at the start of the document Below is a rendering of the page up to the first error.

SiteMap網站地圖生成出錯原因

我這邊出現問題應該是外掛衝突導致的
買了一個seo外掛,功能挺多,但是bug也多
等發現問題後,已經不知道怎麼恢復回來了,那隻能找其他辦法解決

網上比較多的是funtions.php檔案<?php前有空行,這種一般是認為,好解決
針對我這種外掛引起的排查就麻煩,不知道是哪個檔案出了問題

解決辦法:

既然不知道問題出在哪個檔案,那就從程式末端做處理
檢視網站地圖原始碼的時候看到第一行是空行,只要去掉空行就能解決問題

在網站根目錄(比如我根目錄是:www.123how.com/),新建檔案spacefix.php
程式碼內容:

<?php
function ___wejns_wp_whitespace_fix($input) {
	$allowed = false;
	$found = false;
	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;
		}
	}
	if ($allowed || !$found) {
		return preg_replace("/\\A\\s*/m", "", $input);
	} else {
		return $input;
	}
}
ob_start("___wejns_wp_whitespace_fix");
?>

然後在主題目錄下找到functions.php,在開頭的<?php後面插入include("spacefix.php");
把上面新建的spacefix.php檔案引入進來
如圖所示:

最後記得清理快取,就能看到網站地圖可以正常生成了,作用就是去除空行。

相關文章