Подскажите php


samdo
105

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

Подскажите как в данном коде закрыть <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

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

        }
        return $gallery;


samdo

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

samdo #:
Тогда он закрывается сразу, вот так

Нет. Если сделать так как сказано выше.

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

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


vovka83

}

$gallery .=  «</div>»;

return $gallery;


samdo

vovka83 #:
$gallery .=  «</div>»;

Спасибо, помогло.


LEOnidUKG

В функции где идёт возврат данных, писать echo ? Серьёзно?


SeVlad

LEOnidUKG #:
В функции где идёт возврат данных, писать echo ? Серьёзно?

Почему нет?

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


webinfo1

samdo #:
Спасибо, помогло.

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

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

Напишете

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *