Wp 3.3

Обновился до WP 3.3 и поломалась админбар:

Warning: Invalid argument supplied for foreach() in /XYZ/wp-includes/class-wp-admin-bar.php on line 342

В окрестностях 342-й стр. имеем следующий код:

             <div id="wpadminbar" class="<?php echo $class; ?>" role="navigation">
                       <div class="quicklinks">
                            <?php foreach ( $root->children as $group ) {  // это 342-я строка
                                       $this->_render_group( $group );
                               } ?>
                       </div>
               </div>

Вопрос: из-за чего поломалось?

Стоит отключить все плагины, затем включать по одному.

Мда… Попробовал поиграться с плагинами

Во-первых сообщение

Warning: Invalid argument supplied for foreach() in /XYZ/wp-includes/class-wp-admin-bar.php on line 342

никак не связано с плагинами… После отключения всех оно остается.

Во-вторых пропадение админ бара связано со след плагинами:

Contact Form 7
FancyBox for WordPress
NextGEN Gallery
TubePress

Включение любого из них приводит к пропадению админбара…

Это у всех так?

На одном из сайтов стоит wp3.3 и плагин Contact Form 7 Версія 3.0.1. Работает ли сам плагин, я не знаю (не я рулю сайтом), но не мешает – это точно. Впрочем, может, мой коллега его "лечил".

Подозреваю, конфликт версий jQuery.

никак не связано с плагинами... После отключения всех оно остается.

Тем не менее, на чистой установке его нет. Стоит попробовать сменить тему на исходную (в целях диагностики) и проверить целостность файлов.

думаю плагины виноваты, вот посмотри я что то писал был http://merfo.net/fatal-error-na-wordpress-3-3-posle-obnovleniya/

Проблема решилась… И как оказалось проблема не в плагинах, а (Sergey Biryukov, вы правы) в теме …

Необходимо что бы код <?php wp_footer(); ?>
Стоял строго перед:
</body>
</html>

У меня между ними оказались коды Google Analytics и Yandex.Metrika

ЗЫЖ Собственно решение не мое, а от сюда __http://wordpress.org/support/topic/no-admin-toolbar-on-website-page-after-upgrade-to-33

Warning: Invalid argument supplied for foreach() in /XYZ/wp-includes/class-wp-admin-bar.php on line 342

Оказалось, что ошибка возникает в тех темах, где wp_footer() в footer.php вызывается дважды. Или в первый раз do_action(‘wp_footer’), а во второй — wp_footer().
Должен быть только один вызов, перед </body>.

Исправлено в WordPress 3.3.1: http://core.trac.wordpress.org/ticket/19642

Anonymous
Отправить
Ответ на: