К сожалению, сегодняшнее обновление Вордпресс прошло гладко не у всех. Критических ситуаций я не зафиксировал, однако обращений было больше, чем обычно. И связаны они в основном были с плагинами.
В частности, на нескольких сайтах в админке появились ошибки в ядре: plugin.php, functions.php, misc.php, admin-header.php
Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/danilin.biz/wp-admin/includes/plugin.php on line 1392
Warning: Cannot modify header information — headers already sent by (output started at /var/www/danilin.biz/wp-admin/includes/plugin.php:1392) in /var/www/danilin.biz/wp-includes/functions.php on line 5946
Warning: Cannot modify header information — headers already sent by (output started at /var/www/danilin.biz/wp-admin/includes/plugin.php:1392) in /var/www/danilin.biz/wp-admin/includes/misc.php on line 1252
Warning: Cannot modify header information — headers already sent by (output started at /var/www/danilin.biz/wp-admin/includes/plugin.php:1392) in /var/www/danilin.biz/wp-admin/admin-header.php on line 9
Страшного тут ничего нет, но и приятного мало — проблема с каким-то из плагинов. В первую очередь нужно выяснить с каким именно. Действуем по старой схеме: отключаем все плагины, затем по одному включаем и смотрим после какого появится ошибка.
Уже поймали целую кучу, из популярных вот эти два точно вызывают ошибку.
Polylang тоже стал ругаться.
Warning: Declaration of PLL_Walker_Dropdown::walk($elements, $args = Array) should be compatible with Walker::walk($elements, $max_depth, …$args) in /var/www/danilin.biz/wp-content/plugins/polylang/include/walker-dropdown.php on line 0
Что делать
Ждать обновления проблемных плагинов или выхода Вордпресс 5.3.1, в котором обещали исправить это недоразумение.
Не забываем перед обновлением делать бэкапы. После обновления рекомендую сбросить кеш браузера, иначе могут наблюдаться проблемы с редактором.
TGM Plugin Activation (Обновлено 27 января 2019 г.)
Еще одной причиной возникновения ошибок является интегрированный в некоторые устаревшие премиум-темы модуль TGM Plugin Activation. Для работы сайта он не нужен, можно просто найти в коде его инициализацию и закомментировать ее.
Примерно так
if ( file_exists( get_template_directory() . '/admin/tgm/tgm-init.php' ) ) {
// require_once get_template_directory() . '/admin/tgm/tgm-init.php';
}
Больше полезных материалов по веб-разработке на моем канале в Телеграм.
Обязательно подпишитесь.
Жалею, что решилась на этот шаг *(.