Внезапно начинаю получать эту ошибку для следующего кода:
<?php foreach (get_the_terms(get_the_ID(), 'loan-club') as $cat) : ?> <img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" title="ON LOAN AT: <?php echo $cat->name; ?>" /> <?php endforeach; ?>
Иногда таксономия «кредитный клуб» пуста. Может ли это быть проблема? Если да, может кто-нибудь указать мне на правильный код?
Добавить, if
условие перед foreach
:
<?php $loan_club = get_the_terms(get_the_ID(), 'loan-club'); if(is_array($loan_club)) { foreach ($loan_club as $cat) { ?> <img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" title="ON LOAN AT: <?php echo $cat->name; ?>" /> <?php } } ?>
Посмотрите на функцию get_the_terms () в документации: https://developer.wordpress.org/reference/functions/get_the_terms/
Функция также может возвращать WP_Error или false. Если WP_Error или false возвращается, это приведет к разрыву ошибки и цикла foreach.
<?php foreach ((array)get_the_terms(get_the_ID(), 'loan-club') as $cat) : ?> <img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" title="ON LOAN AT: <?php echo $cat->name; ?>" /> <?php endforeach; ?> Note: to all the people complaining about typecast, please note that the OP asked cleanest way to skip a foreach if array is empty (emphasis is mine). A value of true, false, numbers or strings is not considered empty.