@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 цикла? Хочу понять суть.
  • Вопрос задан
  • 197 просмотров
Решения вопроса 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;
}


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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽