Очень часто при работе с WordPress много неприятностей доставляет наличие BOM в сохраненных в utf-8 файлах.

Ошибка проявляется в виде сообщения:

Warning: Cannot modify header information – headers already sent by (output started at /xxxxxxxx/wp-config.php:1)

Может быть не wp-config.php, а другой файл. А может сообщения вообще не быть, если вывод предупреждений подавлен. Когда ошибка на виду, найти файл не составит проблемы. А если нет сообщения?

Для облегчения поиска файлов с BOM я нашкрябал простенький скриптик.

Использование:

1. скрипт разархивировать и залить на сервер в корневую директорию

2. в адресной строке броузера набрать http://ваш.сайт/find_bom.php

Для увеличения скорости работы проверяются только те директории, в которые обычно пользователи кладут свои файлы, т.е. корень, /wp-content/themes и /wp-content/plugins.

Если WordPress находится не в корне сайта, то скрипт нужно положить в директорию, где лежит WordPress, и из нее же и запускать.

Скачать find_bom.zip

См. также Как сохранять файлы в кодировке utf-8.

Добрый человек, известный под ником CMEPTHuk, написал утилитку utf8-bom-remover для поиска и удаления BOM локально, еще до аплоада файлов на сервер. За что ему большое человеческое спасибо!

UPD По просьбам админов сайтов на других движках, я сделал модификацию скрипта, которая ищет BOM во всех php-файлах всех поддиректорий. Скачать find_bom_total.zip.

Удачной охоты!

Валидатор W3C обучен находить BOM наравне с ошибками в html-коде.