我有一个自定义的帖子类型,使用ACF的图片库。所有的工作,因为它应该在个人自定义帖子,现在我想显示所有的图片库在一起,就像一个大的主图片库通过一个循环在一个页面上。这是一种工作-但只有一个图片库正在显示。我该怎么做,使他们都显示(目前有3个画廊,但将随着时间的推移增长)?
下面是即将完成的代码:
<?php
$loop = new WP_Query( array( 'post_type' => 'galleries', 'nopaging' => true) );
while ( $loop->have_posts() ) : $loop->the_post();
$images = get_field('image_gallery');
endwhile;
if( $images ): ?>
<?php foreach( $images as $image ): ?>
<a href="<?php echo esc_url($image['url']); ?>" style="background-image: url(<?php echo esc_url($image['url']); ?>); background-size: cover;" data-lightbox="gallery"><img class="gallery-image" src="<?php echo esc_url($image['url']); ?>" alt=""></a>
<?php endforeach; ?>
<?php endif; ?>
2条答案
按热度按时间luaexgnf1#
问题是在
while
循环中,你只将图片库赋给$images
变量,这样每次迭代都会覆盖该变量,所以最后得到的是上一篇文章的图片库。在这种情况下,只需将输出包含在while循环中:
11dmarpk2#
您也可以使用ACF Views plugin来显示gallery字段,而不需要编码。您只需要在那里创建一个View,选择您想要显示的字段,您会得到一个shortcode,比如
[acf_views view-id="2221" name="Page fields"]
,然后您可以将shortcode粘贴到任何地方,插件会自动为字段生成标记。这是一个免费的插件,支持所有的ACF字段类型,并且有非常灵活的设置。要显示其他页面的ACF字段(就像你的例子),你必须使用一个object-id参数作为你的简码,比如:
do_shortcode("[acf_views view-id="2221" object-id="{$post->ID}" name="Page fields"]")
这里有一个他们官方网站的链接-ACF Views: Display ACF fields and Posts。更多的信息沿着他们的YouTube教程和文档的链接可以在那里找到。