Указан неверный аргумент для foreach () при отмене выбора массива

Приведенный ниже код отображает массив мерцающих изображений из плагина, который работает с расширенными настраиваемыми полями. У меня проблема в том, что если я ранее выбрал галерею для показа, но теперь отменил ее, я получаю сообщение об ошибке «Предупреждение: неверный аргумент указан для foreach () в …»

Как я могу это исправить? Очевидно, что если ничего не выбрано или что-то не выбрано, оно не должно ничего выводить.

Спасибо, и я впервые использую stackoverflow, поэтому я ценю любую помощь, пожалуйста, будьте осторожны, я очень новичок в php. 🙂

<?php
$flickr_set = get_field(post_flickr_set);
echo '<div #id="flickr-set" class="flickr-gallery">';
if (isset($flickr_set['items'])) {
foreach ($flickr_set['items'] as $id => $photos) {
foreach ($photos as $photo) {
echo '<a href="' . $photo['large'] . '" title="' . $photo['title'] . '"><img src="' . $photo['thumb'] . '" /></a>';
}
}
echo '</div><!-- end flickr-set -->';
}

?>

1

Решение

Вам просто нужно проверить, является ли значение также массивом вроде:

$flickr_set = get_field(post_flickr_set);
// You can do a var_dump($flickr_set); to see what you are actually getting.
// Perhaps $flickr_set['items'] == false so it may get set, but not as an array to loop through

echo '<div #id="flickr-set" class="flickr-gallery">';

// The foreach() requires an array, so if $flickr_set['items']
// is not an array, foreach() will throw an error
// If this value is an array but is empty, you can use !empty($flickr_set['items'])
if (isset($flickr_set['items']) && is_array($flickr_set['items'])) {
foreach ($flickr_set['items'] as $id => $photos) {
foreach ($photos as $photo) {
echo '<a href="' . $photo['large'] . '" title="' . $photo['title'] . '"><img src="' . $photo['thumb'] . '" /></a>';
}
}
echo '</div><!-- end flickr-set -->';
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector