Не знаю, какое обновление вызывало проблему, но сегодня Яндекс не смог получить доступ к моей карте сайта, хотя раньше всё работало нормально. Пытаясь открыть sitemap.xml вручную, я увидел ошибку примерно следующего содержания:
This page contains the following errors:
error on line 1 at column 8:
XML declaration allowed only at the start of the documentBelow is a rendering of the page up to the first error.
У этой проблемы есть два простых решения:
1) Проверить файлы functions.php, options.php и wp-config.php на отсутствие пустых строк в конце файла — не помогло;
2) Удалить закрытие php (т.е. символы ?>) из системных файлов, типа functions.php — помогло!
Если же оба варианта вам не помогли, то я нашёл на stackoverflow ещё один способ:
Сначала вы создаете php-файл (whitespacefix.php) в корневом каталоге своего WordPress-сайта. У него должно быть следующее содержимое:
<?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");
?>
Нейросеть подсказывает, что этот код создает функцию, которая удаляет лишние пробелы и переносы строк из контента, если заголовок «Content-Type» указывает на текстовый или XML-контент.
Соответственно, после создания файла вам надо подключить его в wp-config или в functions.php. Для этого нужно сразу после открывающего <?php добавить строку:
include('whitespacefix.php');