Задать вопрос
@freeman0204

Как сделать добавление картинок в слайдер(slider syncing slick) через WP?

https://codepen.io/mahmoudzohdi/pen/WrOJPv есть такой пример slider syncing slick. Если бы это был просто Single Item или даже Multiple Items я бы смог вывести его через цикл WP_Query{} через кастомный тип записи например. Но в slider syncing slick немного другая структура. Есть блок с большой картиной и отдельно с маленькими. Как это все добро можно вывести через цикл что бы я смог просто добавлять картинку через кастомный тип записи, как миниатюру или через ACF как image? Возможно нужно 2 цикла? Хочу понять суть.
  • Вопрос задан
  • 208 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
zorca
@zorca Куратор тега WordPress
Берем обычную стандартную галерею Wordpress, добавляем туда нужные картинки, затем кидаем в котелок немного магии:
function parse_gallery_images($content) {
    $attachment_ids = [];
    $pattern = get_shortcode_regex();
    $images = [];
    if (preg_match_all( '/'. $pattern .'/s', $content, $matches ) ) {
        //finds the "gallery" shortcode and puts the image ids in an associative array at $matches[3]
        $count = count($matches[3]);      //in case there is more than one gallery in the post.
        for ($i = 0; $i < $count; $i++){
            $atts = shortcode_parse_atts( $matches[3][$i] );
            if ( isset( $atts['ids'] ) ){
                $attachment_ids = explode( ',', $atts['ids'] );
                $attachementsCount = count($attachment_ids);
                if ($attachementsCount > 0){
                    for ($j = 0; $j < $attachementsCount ; $j++) {
                        $image = [];
                        $attachmentId = intval($attachment_ids[$j]);
                        $image['id'] = $attachmentId;
                        $image['full'] = wp_get_attachment_image_src($attachmentId, 'full');
                        $image['medium'] = wp_get_attachment_image_src($attachmentId, 'medium');
                        $image['thumbnail'] = wp_get_attachment_image_src($attachmentId, 'thumbnail');
                        array_push($images, $image);
                    }
                }
            }
        }
    }
    return $images;
}


И получаем на выходе массив картиночек, готовых для внедрения во фронтенд.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽