Поддержка Проблемы и решения Не отображается галерея через шорткод

  • Здравствуйте. Есть кастомный тип записи, в котором изображения добавляются посредством поля «галерея» в Custom Post Type UI.
    Field name галереи — photo_ms

    Использую стандартный шорткод галереи WP. Для вывода идёт следующий код:

    <?php
    $ids = get_field( get_the_ID(), 'photo_ms' );
    if( $images ): ?>
    <?php echo do_shortcode('[gallery columns="3" link="file" ids=" . $ids . "]'); ?>
    <?php endif; ?>

    Но что-то с этим кодом не то, так как выводятся изображения не из поля photo_ms, то бишь не из поста, а какие-то левые. Но выводятся…

    Вот код сторонней галереи через скрипт (которая меня не устраивает), там изображения из массива ‘photo_ms’ выводятся нормально:

    <?php 
    $images = get_field('photo_ms');
    $size = 'thumbnail'; // (thumbnail, medium, large, full or custom size)
    if( $images ): ?>
    <?php foreach( $images as $image ): ?>
    <a href="<?php echo $image['url'] ?>"><img src="<?php echo $image['sizes']['thumbnail'] ?>">
    </a>
    <?php endforeach; ?>
    <?php endif; ?>

    Подскажите, как сделать всё по-уму, если не сложно. Спасибо.

    • Тема изменена 4 года, 8 месяцев назад пользователем gnumster.
    • Тема изменена 4 года, 8 месяцев назад пользователем gnumster.
    • Тема изменена 4 года, 8 месяцев назад пользователем gnumster.
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • В последнем примере кода ошибка (открыто много файлов и перепутал), вот примерно так должен выглядеть код, как я понимаю (пример другой галереи, который не могу адаптировать под нынешний сайт, но реализовано как раз через массив и вывод в шорткоде):

    <?php 
    $ids = get_post_meta( get_the_ID(), 'fav_photos', true );
    $selected_images = '';
    if( !empty($ids) ) {
    	foreach ($ids as $key => $value) {
    	$selected_images .= $key . ',';
    	}
    }
    echo do_shortcode('[gallery columns="3" size="model-gallery" link="file" ids="' . $selected_images . '"]'); ?>
    • Ответ изменён 4 года, 8 месяцев назад пользователем gnumster.
    • Ответ изменён 4 года, 8 месяцев назад пользователем gnumster.
    • Ответ изменён 4 года, 8 месяцев назад пользователем gnumster.

    Решено.

    `$images = get_field(‘photo_ms’);
    if( $images ){
    foreach( $images as $image ){
    $ids[]=$image[‘ID’];
    }
    $ids=implode(‘,’,$ids);
    echo do_shortcode(‘[gallery columns="4" link="file" ids=" '. $ids .' "]‘); `

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Не отображается галерея через шорткод» закрыта для новых ответов.