今天突然發現網站地圖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
檔案引入進來
如圖所示:
最後記得清理快取,就能看到網站地圖可以正常生成了,作用就是去除空行。