Files
wordpress-theme-aksrt/templates/parts/content-gallery.php
T

49 lines
1.9 KiB
PHP

<?php
/**
* 图片画廊模板
*
* 用于文章内嵌画廊块或图片列表展示。
*
* @package AKSRT
* @since 5.0.0
*
* @var array $images 图片数组 [{src, alt, caption, width, height}]
* @var string $layout 布局: grid / masonry / carousel
* @var int $columns 列数 (default: 3)
* @var bool $lightbox 是否启用灯箱 (default: true)
*/
defined('ABSPATH') || exit;
$images = $args['images'] ?? [];
$layout = $args['layout'] ?? 'grid';
$columns = max(1, min(6, (int) ($args['columns'] ?? 3)));
$lightbox = $args['lightbox'] ?? true;
if (empty($images)) return;
?>
<div class="content-gallery content-gallery--<?php echo esc_attr($layout); ?>" style="--gallery-columns: <?php echo $columns; ?>;">
<?php foreach ($images as $index => $img) :
$src = $img['src'] ?? '';
$alt = $img['alt'] ?? '';
$caption = $img['caption'] ?? '';
if (!$src) continue;
?>
<figure class="content-gallery__item" data-index="<?php echo $index; ?>">
<a href="<?php echo esc_url($src); ?>"
class="content-gallery__link"
<?php echo $lightbox ? 'data-lightbox="gallery"' : ''; ?>
data-caption="<?php echo esc_attr($caption); ?>">
<img<?php echo aksrt_get_lazy_attr('lazy_posts_content', (string) $src, 'content-gallery__img', aksrt_get_lazy_thumb('lg')); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
alt="<?php echo esc_attr($alt); ?>"
width="<?php echo esc_attr($img['width'] ?? 800); ?>"
height="<?php echo esc_attr($img['height'] ?? 600); ?>">
</a>
<?php if ($caption) : ?>
<figcaption class="content-gallery__caption"><?php echo esc_html($caption); ?></figcaption>
<?php endif; ?>
</figure>
<?php endforeach; ?>
</div>