我正在尝试将Simple Lightbox插件集成到高级自定义字段图像字段中。
基本上我希望页面上的任何图像(通过acf图像字段填充)在点击时在灯箱中打开,并且还与灯箱内的所有其他图像组合在一起,以便可以像幻灯片一样浏览它们。这是Simple Lightbox插件的内置功能,但我不知道如何将它与我的图像字段模板代码集成。
对于acf WYSIWYG字段,我正在使用此...
<?php
$content = get_field('wysiwyg');
if ( function_exists('slb_activate') )
$content = slb_activate($content);
echo $content;
?>
......效果很好,但适应图像领域却让我望而却步。
这是我的图片字段模板代码(没有尝试集成Simple Lightbox):
<?php
$image = get_field( 'img' );
if( ! empty( $image ) ) {
$url = $image['url'];
$alt = $image['alt'];
$caption = $image['caption'];
$size = 'large';
$thumb = $image['sizes'][ $size ];
$width = $image['sizes'][ $size . '-width' ];
?>
<?php if( $caption ): ?>
<div class="wp-caption" style="width: <?php echo $width; ?>px">
<?php endif; ?>
<a href="<?php echo $url; ?>">
<img src="<?php echo $thumb; ?>" alt="<?php echo $alt; ?>" />
</a>
<?php if( $caption ): ?>
<p class="wp-caption-text"><?php echo $caption; ?></p>
</div>
<?php endif; ?>
<?php } ?>
有关如何将Simple Lightbox集成到此的任何建议吗?提前谢谢!
答案 0 :(得分:0)
使用php output buffering将模板存储在变量中。将ob_start()放在顶部,然后在底部ob_get_clean()将停止输出缓冲,并且可以将返回值保存到变量中。然后将其传递给slb_activate。
<?php
ob_start();
$image = get_field( 'img' );
if( ! empty( $image ) ) {
$url = $image['url'];
$alt = $image['alt'];
$caption = $image['caption'];
$size = 'large';
$thumb = $image['sizes'][ $size ];
$width = $image['sizes'][ $size . '-width' ];
?>
<?php if( $caption ): ?>
<div class="wp-caption" style="width: <?php echo $width; ?>px">
<?php endif; ?>
<a href="<?php echo $url; ?>">
<img src="<?php echo $thumb; ?>" alt="<?php echo $alt; ?>" />
</a>
<?php if( $caption ): ?>
<p class="wp-caption-text"><?php echo $caption; ?></p>
</div>
<?php endif; ?>
<?php } ?>
<?php $content = ob_get_clean(); ?>
<?php echo slb_activate($content); ?>