@AlexMark

Вывод taxonomy через foreach?

<?php $cur_terms = get_the_terms( $post->ID, 'metki' );
foreach( $cur_terms as $cur_term ){
	$term_link = get_term_link( (int)$cur_term->term_id, $cur_term->taxonomy ) ;
    
    // If there was an error, continue to the next term.
    if ( is_wp_error( $term_link ) ) {
        continue;
    }
	echo '<a href="'. esc_url( $term_link ) .'">'. $cur_term->name .'</a> ';
};?>

В общем, оно таксономии выводит как нужно, но если в поста нету тегов, то выбивает ошибку "Invalid argument supplied for foreach() in line 52 - вот она foreach( $cur_terms as $cur_term )"
Как исправить можно...
  • Вопрос задан
  • 456 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Открыть документацию по функции get_the_terms(), найти фразу "Array of WP_Term objects on success, false if there are no terms or the post does not exist, WP_Error on failure." и добавить проверку:
<?php
$cur_terms = get_the_terms($post->ID, 'metki');
if (is_array($cur_terms) && !is_wp_error($cur_terms)) {
    foreach ($cur_terms as $cur_term) {
        $term_link = get_term_link((int) $cur_term->term_id, $cur_term->taxonomy);

        // If there was an error, continue to the next term.
        if (is_wp_error($term_link)) {
            continue;
        }
        echo '<a href="' . esc_url($term_link) . '">' . $cur_term->name . '</a> ';
    }
}
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
Думаю как-то так:
if (count($cur_terms)) {
     foreach( $cur_terms as $cur_term )
}


вообще, нужно бы проверить, что в переменной $cur_terms в тот момент когда возникает ошибка, и добавить проверку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы