2016-11-06 1 views
0

У меня есть следующий код внутри WordPress цикла, который должен найти слизняк для настраиваемой систематики:Ошибки при получении слизняка пользовательских систематики «Попытка получить свойство, не объект»

$bands_array = get_the_terms($post->ID, 'tcu_song_bands'); 
$bands = ''; 

foreach((array)$bands_array as $band) { 
    $bands .= "band-" . $band->slug . " "; 
} 

Однако в моих отладках .log Я получаю сообщение об ошибке «Попытка получить свойство не объекта» (однако код работает, но я пытаюсь устранить ошибку). Может ли кто-нибудь предложить другой метод получения пули пользовательской таксономии?

Вот что я получаю за один результат при использовании print_r ($ полоса)

WP_Term Object ([term_id] => 15 [name] => 5-piece [slug] => 5-piece [term_group] => 0 [term_taxonomy_id] => 15 [taxonomy] => tcu_song_bands [description] => [parent] => 0 [count] => 165 [filter] => raw) 
+0

Ошибка на какой линии? Вы проверили значение '$ band' на каждой итерации? –

+0

@u_mulder Ах да, извините, что это на линии в заявлении foreach (относительно $ band-> slug). Как проверить значение $ band на каждой итерации? –

+1

С 'echo'? С помощью 'var_dump'? С 'print_r'? Вы знаете, что такое отладка? –

ответ

0

get_the_terms может привести в состояние ошибки. Важны функции возврата из этой функции.

(массив | false | WP_Error) Массив объектов WP_Term на успех, false, если нет условий или сообщения не существует, WP_Error при сбое.

Не беспокойтесь, если вы потеряете видимость на этом.

$bands_array = get_the_terms($post->ID, 'tcu_song_bands'); 
$bands = ''; 

if (is_array($bands_array)) { 
    foreach($bands_array as $band) { 
     // only interested in bands with a slug 
     if (isset($band->slug)) { 
      $bands .= "band-" . $band->slug . " "; 
     } 
    } 
} 
// else log error if it returned a WP_Error, etc. 
+0

Пятно на, большое спасибо за это –

Смежные вопросы