Sign in to follow this  
Followers 0
WBM-PM

Ошибка, помогите исправить

10 posts in this topic

Доброго времени суток!
В php - слабоват мягко говоря.
Суть проблемы:
есть сайт, работает на wordpress, установил плагин интернет магазина WooCommerce, все работает, но в некоторых местах вылазит строка:
Warning: reset() expects parameter 1 to be array, null given in /home/vasya/site.com/wp-content/ themes/ccm3/library/sidebars.php on line 183

содержимое файла sidebars.php прикрепил:

 

Буду от всей души благодарен за помощь!

error.txt

Share this post


Link to post
Share on other sites

$places пустой вот и все

или содержит неверную запись

по тексту ошибки я это тоже понял)) а вот где ковырять?)

Share this post


Link to post
Share on other sites

Нужно выключить показ предупреждений в php.ini или .htaccess

WBM-PM likes this

Share this post


Link to post
Share on other sites

по тексту ошибки я это тоже понял)) а вот где ковырять?)

 

ковырять в том месте где вызывается функция theme_print_sidebar, и смотреть что за $places в нее передают

Ошибка не критична, просто отключите показ ошибок

 

если хотите исправить ищите вызов функции и isset вам в помощь, это так на вскидку

WBM-PM likes this

Share this post


Link to post
Share on other sites

С PHP давно уже не работал и по забывал все, но попробуй после строки

function theme_print_sidebar($name, $places) {

Сделать проверку

if(empty($places)) {
	return;
}
WBM-PM likes this

Share this post


Link to post
Share on other sites

 

С PHP давно уже не работал и по забывал все, но попробуй после строки

function theme_print_sidebar($name, $places) {

Сделать проверку

if(empty($places)) {
	return;
}

не помогло - после этого выводит сайдбар дважды))

Share this post


Link to post
Share on other sites

не помогло - после этого выводит сайдбар дважды))

 

правильно потому как $places это массив

 

скорее

if ($name != 'footer' && $place_count < 2 && isset($places)) {
		theme_print_widgets(reset($places), $style);
		return;
	}

Но это проверка на существование, не зная что и как лежит в нем не поймешь

 

для этого в начале функции print_r($places); - если он все таки существует

WBM-PM likes this

Share this post


Link to post
Share on other sites

В итоге последовал совету DevilStar отключил показ ошибки в .htaccess

пока, позже перековыряю , если руки дойдут, грешу на несовместимость темы и WooCommerce.

Всем большое спасибо за участие!

Share this post


Link to post
Share on other sites

В итоге последовал совету DevilStar отключил показ ошибки в .htaccess

пока, позже перековыряю , если руки дойдут, грешу на несовместимость темы и WooCommerce.

Всем большое спасибо за участие!

Посмотри что лежит в $places на страницах где нет данной ошибки

Функция reset на сколько я помню указывает на первый элемент массива, но так как $places ничего не содержит и не определен вылетает предупреждение.

Если print_r($places) в начале функции выводит постой массив [], можно вместо empty попробовать сделать так

if( ! count($places)) {
   return;
}

Главное знать что содержит переменная $places

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.