На нескольких сайтах на WordPress, к которым я имею отношение, случился фатал эррор. Выглядит он как в названии этого поста. Расскажу как я справися.
Fatal error: Call to undefined function wp-blog-header.php online 14
Это не универсальное решение. Ошибка в строчке 14 может появляться по разным причинам, например, если адрес сайта не соответствует инфе (на wordpress.org есть ветка по этой теме) или ещё по другим причинам. В нашем случае это случилось именно при автоматическом обновлении движка блога.
Я зашел в файл wp_config — и обнаружил первое несоответствие: у меня на хостинге пользователи баз данных имеют в названии префикс, состоящий из имени пользователя в системе. Ну, например, имя пользователя может быть blogxws_basename; а имя базы blogxws_username. Префикс пропал, хотя остальные данные сохранились. Префикс я знал, потому исправил его (хотя, конечно, лучше сверится если есть с чем).
Ещё я обычно меняю стандартный префикс баз данных с wp_ на какой-то иной. Это обеспечивает более высокий уровень защиты.
После этого подключился к базе данных через phpmyadmin (в хостинге в разделе «Базы данных») и сразу слева увидел правильный префикс для того конкретного блога. После этого я открыл сайт — с подключением к БД всё ок. Но сайт не отображается весь как надо и почему-то не входит в админку. Открыл wp-admin, открыл файлы — а они пустые. Видимо произошла ошибка при копировании, файлы создались, но не заменились. Потому я скачал самую свежую версию WP (русскую — обязательно ту же языковую версию качать!), распаковал на сервере (рекомендую делать это так, чтобы не заменились права на файлы) и заменил все файлы.
Имейте в виду, что нужно быть аккуратным с папкой wp-content (не в коем случае не удаляйте её — потеряете все вложения и плагины!!!). Кроме того, если Вы вносили изменения в оригинальную тему, они могут быть изменены. Да и вообще, в эту папку лучше переносить файлы по папкам, а не скопом.
В общем, вкратце инструкция такая:
- проверить wp_config и исправить имя пользователя базы, имя базы, префикс
- проверить соответствие всех файлов, либо заменить их вручную.
#1 by Сергей - Июнь 26th, 2011 at 23:41
Здравствуйте!
Сделал, как Вы написали. Ошибка исчезла. Но вместо сайта — пустая белая страница. Как исправить?
#2 by admin - Июнь 27th, 2011 at 23:29
в админку заходит?
если да, то скорее всего на хостинге появился (или был) файл index.html или index.htm
его нужно удалить (основной файл wordpress’a — index.php)
либо второй вариант — нет этого самого index.php, то есть при обновлении старый стерся, а новый не разархивировался. Скачайте нужную версию WP — дефолтную и залейте на хостинг только этот один файл.
по идее будет работать.
#3 by Сергей - Июнь 28th, 2011 at 11:07
Нет, в админку не заходит. Файла index.html нет. Яуж грешить начал на линк доменов. Заново прилинковал. БД тоже перезалил, все файлы, тему… Файл config.php раз 20 перепроверил… В конце концов, все снова снес…
#4 by admin - Июнь 28th, 2011 at 15:40
значит не хватало каких-то файлов или что-то в базе… в конце концов решение все снести и поставить с нуля — верное 🙂
#5 by Никита - Ноябрь 8th, 2011 at 16:40
У меня тут такое дело захожу по этой ссылке «blog точка nicebux точка ru»
вылазиет ошибка
захожу по такомуже адресу ток добавляю wp-admin/install.php уже другая ошибка
помогите пожалуйста.
вот мои контакты ICQ 615 020 43четыре
и майл я указал. кто может пишите в контакты помогите пожалуйста
#6 by admin - Ноябрь 8th, 2011 at 19:48
А что делали перед этим?
обновляли wordpress?
1. скачайте новую версию WP, распакуйте на компьютере и залейте поверх
2. возможно проблема в плагине каком-то
попробуйте все папки из папки wp-content/plugins/
переместить в другую папку — если блог заработает — возвращайте по одному, и возможно сможете найти проблемный
3. та же история как в п.2 с темами
попробуйте все папки из папки wp-content/themes/
переместить в другую папку — если блог заработает — возвращайте по одной
4. в панели управления хостера есть доступ к mysql? попробуйте кнопку repair
#7 by admin - Ноябрь 14th, 2011 at 04:00