Ошибка, которую можно поймать, в formatting.php

Вопрос или проблема

Я использую WordPress 4.4.2. У меня есть один сайт, который работает отлично. Когда я пытался настроить другой сайт, я получил следующую ошибку при попытке сохранить страницу “общие настройки”:

Уловимая фатальная ошибка: объект класса WP_Error не может быть преобразован в строку в /{site-url}/wp-includes/formatting.php на строке 1025'

Перед сохранением настроек я удалил существующую тестовую страницу и тестовый пост и создал новую страницу. Больше ничего не трогал.

После изучения проблемы я сделал следующее:

  • Отключил все плагины (ошибка сохраняется)
  • Переключился на стандартную тему WordPress (ошибка сохраняется)
  • Переустановил текущую версию WordPress (ошибка сохраняется)
  • Обновил сетевой сайт (ошибка сохраняется)
  • Проверил таблицы Опций в phpMyAdmin, подозрительных строк нет
  • Сравнил таблицы Опций между сайтом с ошибкой и без ошибки, они выглядят одинаковыми
  • Запустил плагин WP-Optimize

Я заметил, что могу сохранять значения в таблице Опций только из phpMyAdmin. Когда я пытаюсь сделать это через браузер (например, wp-admin/network/site-settings.php?id=#), опции не сохраняются.

Когда я создаю дополнительный сайт для тестирования, у меня нет этой проблемы. Очевидно, я могу просто удалить сайт и начать заново, но а) проблема также существует на моем основном мультисайте, и б) я хотел бы понять, в чем дело.

Это ошибка? Я пропустил что-то очевидное?

У меня была такая же проблема, и я очистил содержимое строки с именем theme_mods_YOURTHEMENAME (в таблице wp-options)

Я скопировал/вставил содержимое из предыдущей резервной копии.

Теперь все работает хорошо.

Вы не включили все строки страницы ошибки. Только эта строка недостаточна. Как быстрое решение вы можете вставить в wp-includes\formatting.php строку 1025:

var_dump($string); 
var_dump(debug_backtrace());
exit;

и посмотрите, что у вас выйдет.

Ответ или решение

Исходя из описанной вами проблемы, ошибка "Catchable fatal error: Object of class WP_Error could not be converted to string" указывает на то, что происходит попытка использовать объект типа WP_Error в контексте, где ожидается строка. Это может произойти в процессе записи настроек, когда значение, которое вы пытаетесь сохранить, оказывается неправильным.

Вот несколько шагов для диагностики и устранения проблемы:

  1. Определите источник ошибки: Выполнение кода, который вы упомянули, с использованием var_dump, может помочь вам понять, что именно вызывает ошибку. Проверьте значение переменной $string перед строкой 1025 в файле wp-includes/formatting.php и убедитесь, что это фактически строка. Это следует сделать с осторожностью, так как внесение изменений в ядро WordPress является временной мерой.

  2. Очистка содержимого: Учитывая, что вы уже провели множество тестов, рекомендую вам также проверить содержимое строки theme_mods_YOURTHEMENAME в таблице wp-options. Как и в случае с другим пользователем, у которого была похожая ошибка, возможно, там хранятся неверные данные, которые вызывают сбой.

  3. Проверка пользовательских полей: Убедитесь, что нет пользовательских полей или других настроек, которые могли бы быть некорректно отформатированы. Если вы использовали какие-то плагины, которые могли изменить структуру базы данных, стоит проверить их настройки.

  4. Копирование настроек: Если у вас есть доступ к рабочему сайту, попробуйте скопировать настройки и параметры конфигурации из этого сайта. Часто это может помочь восстанавливать ошибочные частично заполненные поля в новой таблице.

  5. Логи ошибок: Если проблема остаётся неразрешённой, проверьте логи ошибок вашего веб-сервера. Это может дать дополнительную информацию о причинах произошедшей ошибки.

  6. Обновление и совместимость: Убедитесь, что ваша версия WordPress и все используемые плагины совместимы друг с другом. Если ошибка возникла после установки нового плагина или темы, попробуйте деактивировать их.

  7. Обратитесь к профессионалам: Если вы не можете самостоятельно решить проблему, рассмотрите возможность обращения к специалистам по WordPress, которые могут помочь более глубоко проанализировать проблему.

Хотя вы можете начать заново с нового сайта, знайте, что это не обязательно решит проблемы, существующие в вашей текущей установке. Обычно лучше понять и устранить основную причину неисправности.

Если вам нужны дальнейшие разъяснения или помощь, не стесняйтесь задавать вопросы.

Оцените материал
Добавить комментарий

Капча загружается...