#php #wordpress #gallery #advanced-custom-fields #lightbox
#php #wordpress #Галерея #дополнительно-пользовательские поля #Лайтбокс
Вопрос:
Я пытаюсь создать страницу архива, чтобы показать некоторые реализации, все из которых имеют галерею с несколькими изображениями. Я использую ACF для создания галереи и плагин Simple Lightbox для создания лайтбокса. Я нашел пример того, как объединить оба плагина, и он близок к тому, что мне нужно, но я не могу понять остальное сам.
Теперь отображаются все изображения из галереи, мне нужно показать только первое изображение, и когда вы нажимаете на изображение, я хочу открыть изображение в лайтбоксе и иметь возможность просматривать галерею таким образом.
Что у меня есть до сих пор:
<?php if ( have_posts() ) {
while ( have_posts() ) { the_post(); ?>
<article id="realisatie-<?php the_ID(); ?>" <?php post_class(); ?> style="background-image: url(<?php echo $images[0] ?>);">
<?php
$images = get_field('realisatie_beelden');
$image_1 = $images[0];
if( $images ) { ?>
<div class="realisatie__gallery" >
<?php foreach( $images as $image ) {
$content = '<a class="gallery_image" href="'. $image .'">';
$content .= '<img src="'. $image .'" alt="'. $image .'" />';
$content .= '</a>';
if ( function_exists('slb_activate') ) {
$content = slb_activate($content);
}
?>
<?php } ?>
</div>
<?php } ?>
</article>
<?php }
} ?>
Комментарии:
1. Просто выведите пустые ссылки для всех, кроме первого изображения. Затем должна быть предоставлена функциональность лайтбокса, при этом они фактически ничего не отображают.
2. $images = get_field(‘realisatie_beelden’,$post_id); передайте здесь идентификатор записи, чтобы вы могли получить значение поля и попробовать
Ответ №1:
Благодаря комментарию я нашел решение, которое работает для меня. Я показываю изображение только для первого элемента, остальные ссылки остаются пустыми.
<?php if ( have_posts() ) {
while ( have_posts() ) { the_post(); ?>
<article id="realisatie-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php
$images = get_field('realisatie_beelden');
$image_1 = $images[0];
if( $images ) { ?>
<?php
$i = 0;
foreach( $images as $image ) {
if ($i >= 1) {
$content = '<a href="'. $image .'"></a>';
} else {
$content = '<a href="'. $image .'">';
$content .= '<img src="'. $image .'" />';
$content .= '</a>';
$i ;
}
if ( function_exists('slb_activate') ) {
$content = slb_activate($content);
}
echo $content;
?>
<?php } ?>
<?php } ?>
</article>
<?php }
} ?>