wordpress 如何使用ACF和自定义帖子类型显示所有图片库?

ryhaxcpt  于 2022-12-11  发布在  WordPress
关注(0)|答案(2)|浏览(227)

我有一个自定义的帖子类型,使用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; ?>
luaexgnf

luaexgnf1#

问题是在while循环中,你只将图片库赋给$images变量,这样每次迭代都会覆盖该变量,所以最后得到的是上一篇文章的图片库。
在这种情况下,只需将输出包含在while循环中:

<?php
$loop = new WP_Query( array( 'post_type' => 'galleries', 'nopaging' => true) );
while ( $loop->have_posts() ) : $loop->the_post();
    $images = get_field('image_gallery');
    if( $images ) :
        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;
    endif;
endwhile;
?>
11dmarpk

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教程和文档的链接可以在那里找到。

相关问题