Свежие записи

Статистика

Просмотров: 171
Хостов: 28

Как исправить — Cannot use a scalar value as an array in

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

При использовании некоторых тем сделанных программой Artisteer V.3 в меню «виджеты» админпанели в самом верху может появиться такое сообщение «Warning: Cannot use a scalar value as an array in /home/*/public_html/*.ru/wp-content/themes/*/core/widgets.php on line 16«.

Немало времени ушло на поиски причин этой ошибки, но я выяснил, что подобные траблы возникает, когда переменной сначала было присвоено скалярное значение (число, строка), а потом к ней обратились как к массиву. Пример: $a = 1; $a[] = 1; Нужно сначала явно присвоить переменной массив: $a = array().

Исходя из вышенаписанного подводим итоги и инструкцию по лечению. В файле widgets.php проблемной темы добавляем строку

if (!is_array($controls['params']) || !is_array($controls['params'][0])) return;

сразу после строк

global $wp_registered_widget_controls;
if (strpos($id, 'art_vmenu')!== false) return;
$controls = &$wp_registered_widget_controls[$id];

В моем случае это место было между 15 и 16 строкой, у вас могут быть немного иные варианты.

Если кому помог напишите в комментах, мне будет приятно.

15 комментариев на “Как исправить — Cannot use a scalar value as an array in”

Оставить комментарий