Поддержка Проблемы и решения Помогите исправить ошибку в error_log

  • Выдает такое предупреждеение

    PHP Warning:  Invalid argument supplied for foreach() in /site.ru/index.php on line 85

    код на который он ругается:

    line 84 $cur_terms = get_the_terms( get_the_ID(), 'brend' ); // Получаем данные (массив) такосомонии пренадлежащие посту с $post_id
    line 85 foreach($cur_terms as $cur_term){$brand = $cur_term->name; $brand_id = $cur_term->term_id;}

    Пожалуйста помогите исправить ошибку.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Помимо массива, функция get_the_terms() может вернуть false (если запись не существует или у неё нет меток из этой таксономии) или объект WP_Error (если указана неверная таксономия).

    Можно добавить в цикл приведение типа к массиву:

    foreach ( (array) $cur_terms as $cur_term )

    А вот такой вариант тоже подойдет? У меня в массиве всего по 1-му значению записано, нету смысла цыкал делать.

    $cur_terms1 = get_the_terms( $postid, 'brend' ); // Получаем данные (массив) такосомонии пренадлежащие посту с $post_id
    //foreach($cur_terms1 as $cur_term){$brand = $cur_term->name; $brand_id = $cur_term->term_id;}
    if ($cur_terms1 == '') {$brand = '0';} else {$brand = $cur_terms1[0]->name; $brand_id = $cur_terms1[0]->term_id;}

    нету смысла цыкал делать.

    Увы, есть. Возвращается именно массив в случае успеха, а не скаляр.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    У меня в массиве всего по 1-му значению записано

    Тогда можно использовать reset():

    $cur_terms1 = get_the_terms( $postid, 'brend' );
    
    if ( $cur_terms1 && ! is_wp_error( $cur_terms1 ) ) {
    	$brand    = reset( $cur_terms1 )->name;
    	$brand_id = reset( $cur_terms1 )->term_id;
    } else {
    	$brand    = '';
    	$brand_id = 0;
    }

    Я забанил 1 IP, теперь в логах куча ошибок. Может ли этот IP создавать нагрузку на сервер?

    [Mon Apr 06 13:00:16 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-smartline-smsd2
    [Mon Apr 06 13:00:16 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-smartline-smsrv4
    [Mon Apr 06 13:00:16 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-chrome-csdl2
    [Mon Apr 06 13:00:17 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-chrome-csd2
    [Mon Apr 06 13:00:17 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-chrome-csd1
    [Mon Apr 06 13:00:17 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-chrome-crv2
    [Mon Apr 06 13:00:17 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-chrome-cskk4
    [Mon Apr 06 13:00:17 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-pivot-pskk3
    [Mon Apr 06 13:00:18 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-dushevye
    [Mon Apr 06 13:00:18 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/ravak-dushevye
    [Mon Apr 06 13:00:18 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/sanswiss-top-line-ter
    [Mon Apr 06 13:00:18 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/sanswiss
    [Mon Apr 06 13:00:19 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/sanswiss
    [Mon Apr 06 13:00:19 2015] [error] [client 148.251.236.167] client denied by server configuration: /site.ru/public_html/sanswiss
    Модератор Yui

    (@fierevere)

    永子

    в зависимости от конфигурации сервера — может,
    но гораздо меньше чем если будет с такой же скоростью «шерстить» сайт. 5 соединений в секунду впрочем не так уж и много, только очень слабый хостинг будет на такое ругаться

    Я забанил 1 IP

    Правила форума, п2.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Помогите исправить ошибку в error_log» закрыта для новых ответов.