我通过结合使用 Bootstrap 5 和“Masonry-Layout”,成功为 WordPress 网站实现了 Masonry-Gallery。 它工作得很好,除了在 Safari 中,布局通常会中断,这是一个已知问题,解决方案应该是“imagesLoaded”。 我尝试了很多,但我只是无法在正确的位置添加所需的类。 据我所知,代码如下。有谁可以帮忙吗?
<div class="row grid" id="gallery-masonry" data-masonry='{"percentPosition": true }'>
<?php
$images = get_field('gallery');
$size = 'large';
if( $images ): ?>
<?php foreach( $images as $image_id ): ?>
<div class="col-md-6 mb-3">
<div id="post-<?php the_ID(); ?>" class="card rounded-0" >
<?php echo wp_get_attachment_image( $image_id, $size, "", ["class" => "card-img-top rounded-0","alt"=>""]); ?>
</div>
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
<!--Masonry-Layout-->
<script src="https://cdn.jsdelivr.net/npm/masonry-layout@4.2.2/dist/masonry.pkgd.min.js" integrity="sha384-GNFwBvfVxBkLMJpYMOABq3c+d3KnQxudP/mGPkzpZSTYykLBNsZEnG2D9G/X/+7D" crossorigin="anonymous" async></script>
<!--ImagesLoaded-->
<script src="https://unpkg.com/imagesloaded@5/imagesloaded.pkgd.min.js"></script>
<!--Script ImagesLoaded-->
<script>
var $grid = $('.grid').imagesLoaded( function() {
// init Masonry after all images have loaded
$grid.masonry({
// options...
});
});
</script> Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
请查看我关于向 WordPress 站点添加 Masonry 的帖子。
https://www.customfitwebdesign.com/如何在 wordpress 中添加砌体布局/
注意:Masonry 实际上内置于 WordPress 的核心中 ( wp-includes/js/masonry.min.js )。此 WordPress 版本的 Masonry 还包括 ImagesLoaded (imagesloaded.min.js)。