Как исправить проблему пустой панели управления в WordPress?

23 дек. 2013 г., 11:54:43
Просмотры: 54.6K
Голосов: 44

Сайт моей компании использует блог на WordPress 3.3.1 с темой на основе Twenty Ten. На прошлой неделе я обновил Apache и PHP на нашем продакшн-сервере. После этого панель управления перестала работать. Когда пользователь входит в систему, появляется пустая панель управления. Меню со ссылками все еще присутствует, но ни одна из ссылок не работает, поэтому невозможно создавать новые записи и т.д. В исходном коде страницы я вижу следующее сообщение:

Fatal error: Access to undeclared static property: WP_Screen::$this in blog/wp-admin/includes/screen.php on line 706

Никаких изменений в конфигурации WordPress не производилось и новые плагины не устанавливались. Как исправить эту проблему?

1
Комментарии

Почему вы не обновляетесь до текущей стабильной версии WordPress с поддержкой новых версий PHP?

bueltge bueltge
23 дек. 2013 г. 11:59:12
Все ответы на вопрос 4
3
84

В WordPress 3.3.1 присутствует баг, вызывающий эту проблему. Он также может затрагивать и другие версии.

Для решения проблемы вы можете обновить WordPress до текущей стабильной версии и затем провести интеграционное тестирование. Или же выполнить быстрое исправление бага.

Чтобы исправить баг:

  1. Откройте файл blog/wp-admin/includes/screen.php в вашем любимом текстовом редакторе.
  2. На строке 706 найдите следующее PHP выражение: <?php echo self::$this->_help_sidebar; ?>
  3. Замените его на: <?php echo $this->_help_sidebar; ?>
  4. Сохраните изменения.

Надеюсь, это поможет вам.

23 дек. 2013 г. 21:58:40
Комментарии

Спасибо, у меня была такая же проблема, и я ее исправил. В чем именно ошибка в указанной строке? Потому что изначально мой сайт работал идеально, пока я не столкнулся с этой ошибкой.

Imran Subhani Imran Subhani
25 февр. 2015 г. 12:55:00

@Imran Ошибка заключается в синтаксически неверной ссылке на свойство '_help_sidebar' экземпляра класса WP_Screen. Похоже, что интерпретаторы PHP до определенной версии были снисходительны к такому выражению, но после обновления на более новую версию просто выдают ошибку.

Dmitry Lebedev Dmitry Lebedev
27 февр. 2015 г. 11:26:41

Я знаю, что "благодарственные" комментарии не приветствуются, но это решение заняло секунды для внедрения и буквально спасло мой блог. Эта странная проблема даже не отображается в моих логах ошибок.

1owk3y 1owk3y
12 февр. 2017 г. 09:12:01
3

Ответ Дмитрия о замене неверного PHP-выражения кажется мне наилучшим:

Замените <?php echo self::$this->_help_sidebar; ?>

На <?php echo $this->_help_sidebar; ?>

24 дек. 2013 г. 15:10:29
Комментарии

Изменение основных файлов никогда не рекомендуется, так как вы потеряете изменения при обновлениях, а также воздержитесь от комментариев в ветке ответов. Я понимаю, что у вас пока нет привилегий для добавления комментариев, но давайте оставим ветки ответов исключительно для ответов.

Maruti Mohanty Maruti Mohanty
24 дек. 2013 г. 15:50:55

Это верно, но если этот "белый экран смерти" просто мешает вам обновиться до версии, где исправлен этот баг (т.е. до последней версии :)), то это самое быстрое решение. Ваши изменения будут немедленно перезаписаны, поэтому нежелательный побочный эффект просто исчезнет.

Attila Fulop Attila Fulop
6 мар. 2014 г. 12:20:36

Сайт, которого я не касался 10 лет, только что столкнулся с этой проблемой. Спасибо, смог легко исправить.

beefaroni beefaroni
8 дек. 2020 г. 05:02:35
0

у вас есть три варианта

  • Понизить версию PHP - вам, скорее всего, это не понравится
  • Обновить WordPress - у вас версия 3.3.1? в любом случае пора обновляться
  • Исправить ошибку в ядре - Не так страшно, как звучит, поскольку код "screen" управляет экраном справки, и вам, возможно, больше не понадобится помощь в работе с WordPress.
23 дек. 2013 г. 12:47:35
0

Даже если вы не вносили изменений в конфигурацию или не добавляли новые плагины в WordPress, обновление версии PHP может вызвать конфликт с одним из уже используемых плагинов, который ранее работал нормально.

Если вы не можете получить доступ к административной панели для отключения плагинов, попробуйте просто переименовать папку /wp-content/plugins в, например, /wp-content/plugins-OLD, а затем снова попытаться зайти в админку.

Если после отключения плагинов вам удастся успешно войти, то вы можете поочередно включать их по одному, чтобы определить проблемный плагин, и оставить его отключенным до тех пор, пока не обновите ядро WordPress и сам плагин до последних версий, где, надеюсь, этих проблем не будет.

23 дек. 2013 г. 20:47:04