Галерея пользовательских настраиваемых полей WordPress не возвращает массив - PullRequest
0 голосов
/ 21 сентября 2018

У меня установлено ACF Plugin, и в моем сообщении хранится галерея.Я перепробовал все эти документы, но все равно получаю ошибку:

Invalid argument supplied for `foreach()`

это происходит потому, что вход для каждого не является массивом!

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

<?php 
    $images = get_field('mygall');
    $size = 'full'; // (thumbnail, medium, large, full or custom size)

    if( $images ): ?>
        <ul>
            <?php foreach( $images as $image ): ?>
                <li>
                    <?php echo wp_get_attachment_image( $image['ID'], $size ); ?>
                </li>
            <?php endforeach; ?>
        </ul>
<?php endif; ?>

1 Ответ

0 голосов
/ 21 сентября 2018

Я думаю, что ваша проблема связана с тем, что вы используете get_field() вместо get_fields().Таким образом, вы не получите массив.

Если это все еще не работает, проверьте документацию для get_fields() здесь .Попробуйте отладить его, используя только get_fields(), и посмотрите, что выводится.Если это пустой массив, это означает, что вы вызываете функцию из loop и она не может получить идентификатор записи.Поэтому проведите второй тест с ручной настройкой идентификатора записи, например get_fields(123);, и проверьте результаты.Если результатов нет, значит что-то не так с этим постом.И если есть результаты, вы можете выполнить финальный тест с проверкой того, что будет результатом get_fields(123, 'gallery').

Все вышеперечисленные отладки могут быть заключены в нечто вроде:

<code>echo '<pre>';
    print_r( get_fields(123) );
echo '
';

По сути, это даст вам некоторое представление о структуре данных, которые вы получаете с помощью этой функции, и о том, как вы можете манипулировать ими, чтобы получить то, что вам нужно.

...