Подскажите php

S
На сайте с 24.08.2015
Offline
52
124

Приветствую!

Подскажите как в данном коде закрыть <div class='grid cols-4'> (выделил жирным красным)

function my_new_gallery_function($atts) {
        
        global $post;
        $pid = $post->ID;
        $gallery = "";

        if (empty($pid)) {$pid = $post['ID'];}

        if (!empty( $atts['ids'] ) ) {
                $atts['orderby'] = 'post__in';
                $atts['include'] = $atts['ids'];
        }

        extract(shortcode_atts(array('orderby' => 'menu_order ASC, ID ASC', 'include' => '', 'id' => $pid, 'itemtag' => 'dl', 'icontag' => 'dt', 'captiontag' => 'dd', 'columns' => 3, 'size' => 'large', 'link' => 'file'), $atts));
                
        $args = array('post_type' => 'attachment', 'post_status' => 'inherit', 'post_mime_type' => 'image', 'orderby' => $orderby);

        if (!empty($include)) {$args['include'] = $include;}
        else {
                $args['post_parent'] = $id;
                $args['numberposts'] = -1;
        }

        if ($args['include'] == "") { $args['orderby'] = 'date'; $args['order'] = 'asc';}

        $images = get_posts($args);
        echo "<div class='grid cols-4'>";       
        foreach ( $images as $image ) {
                //print_r($image); /*see available fields*/
                $thumbnail = wp_get_attachment_image_src($image->ID, 'large');
                $thumbnail = $thumbnail[0];
                $gallery .= "
                        <figure>
                                <a class='lightbox' href='".$thumbnail."'>
                                <img class='gal-item' src='".$thumbnail."'>
                                </a>
                                <figcaption>
                                        <div class='img-title center'>".$image->post_title."</div>
                                        ".$image->post_excerpt."
                                </figcaption>
                        </figure>"
                        ;
        }
        return $gallery;
}

Если ставлю после </figure>, то он после каждого </figure> прописывается, а надо только один раз, чтобы закрывался блок после всего цикла.

Заранее спасибо!

xxx VRV xxx
На сайте с 11.12.2012
Offline
85
#1

между этими строками:

        }
        return $gallery;
SEO, Директ: https://web-ptica.ru/
S
На сайте с 24.08.2015
Offline
52
#2
xxx VRV xxx #:

между этими строками:

Тогда он закрывается сразу, вот так
<div class='grid cols-4'></div>

а нужно закрыть после цикла, после всех

<figure>
<a class='lightbox' href='".$thumbnail."'>
<img class='gal-item' src='".$thumbnail."'>
</a>
<figcaption>
<div class='img-title center'>".$image->post_title."</div>
".$image->post_excerpt."
</figcaption>
</figure>
SeVlad
На сайте с 03.11.2008
Offline
1527
#3
samdo #:
Тогда он закрывается сразу, вот так
Нет. Если сделать так как сказано выше.
samdo #:
а нужно закрыть после цикла, после всех

Именно и будет после цикла. Ты же цикл обернёшь этим дивом.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
vovka83
На сайте с 30.03.2010
Offline
132
#4

}

$gallery .=  "</div>";

return $gallery;

€20 от Hetzner бесплатно https://hetzner.cloud/?ref=mGaoPwy1b6jb €2.49/m - 1CPU/2GB RAM/20 GB SSD/20TB traffic(1gbps)
S
На сайте с 24.08.2015
Offline
52
#5
vovka83 #:
$gallery .=  "</div>";
Спасибо, помогло.
LEOnidUKG
На сайте с 25.11.2006
Offline
1638
#6
В функции где идёт возврат данных, писать echo ? Серьёзно?
✅ Трастовых площадок под размещение статей и ссылок. Опыт 14 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )
SeVlad
На сайте с 03.11.2008
Offline
1527
#7
LEOnidUKG #:
В функции где идёт возврат данных, писать echo ? Серьёзно?

Почему нет?

А, блин, понял о чем ты :)

W1
На сайте с 22.01.2021
Offline
116
#8
samdo #:
Спасибо, помогло.

И ещё больше поможет, если вместо

echo "<div class='grid cols-4'>";

Напишете

$gallery .= '<div class="grid cols-4">';

Выше  LEOnidUKG обратил внимание на некорректность употребления "echo" в функции, потому что по факту содержимое буфера может вывалиться совсем не в том месте страницы, где вам хотелось бы.

Мой форум - https://webinfo.guru –Там я всегда на связи

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий