如何在具有帖子类型的自定义页面上显示所有图像字段

Posted

技术标签:

【中文标题】如何在具有帖子类型的自定义页面上显示所有图像字段【英文标题】:How to display all images fields on custom page with post type 【发布时间】:2021-02-17 10:13:11 【问题描述】:

我正在尝试遍历 ACF 的字段以显示帖子类型和特定类别的所有图像

我举一个实际的例子: 我有一个 ACF 图像字段 (image_of_project),我想查看在与 XYZ 类别相关的帖子类型(项目)中上传的所有图像

现在我创建了这个循环:

'

        $loop = new WP_Query( array( 
            'post_type' => 'projects',
            'posts_per_page' => 9,
            ) );
        
        while ( $loop->have_posts() ) : $loop->the_post();
        $images = get_field('image_of_project');
        if( $images ): ?>
                <?php foreach( $images as $image ): ?>
                
                        <div class="item">
                            <a href="<?php echo get_permalink( $post->ID ); ?>" target="_blank">
                            <?php echo wp_get_attachment_image( $image ); ?>
                            </a>
                        </div>
                <?php endforeach; ?>     
        <?php endif; ?>
        <?php endwhile; ?>

'

图像已显示,但我不明白为什么它会重复我每张图像,并且不只显示链接到特定类别的图像。

感谢任何帮助我完成这项任务的人!

【问题讨论】:

【参考方案1】:

对于那些对该功能感兴趣的人,这是我的工作原理。

函数.php

// Loop Gallery Cat1

function my_custom_gallery_cat1() 
    query_posts(array(
        'post_type' => 'gd_project',
        'orderby' => 'rand',
        'posts_per_page' => 10,
        'tax_query' => array(
            array (
                'taxonomy' => 'gd_projectcategory',
                'field' => 'slug',
                'terms' => 'example-terms',
            )
        ),
    ));
    ?> <div class="masonry">
    <?php
    while (have_posts()) : the_post();
        $image_field = get_field('image');
        $image_url = $image_field['url'];
        $image_alt = $image_field['alt']; ?>
        <div class="grid-item">
        <a href="<?php echo get_permalink( $post->ID ); ?>" target="_blank">
        <img src="<?php echo esc_url($image_url); ?>"  />
        <h4><?php the_field( 'title' ); ?></h4>
        </a>
        </div>
    <?php endwhile; ?>
    </div> <?php

add_shortcode('example-terms', 'my_custom_gallery_cat1');

single-example.php

<div class="container-fluid">
 <div class="row">
  <?php echo do_shortcode('[categoria]');?>
 </div>    
</div>

【讨论】:

以上是关于如何在具有帖子类型的自定义页面上显示所有图像字段的主要内容,如果未能解决你的问题,请参考以下文章

自定义字段 (ACF) 图像并不专属于它上传到的单个帖子,并显示在我创建的每个帖子类型上

按关系字段 (ACF) 的 Elementor 帖子的自定义查询过滤器

如何在使用 foreach 循环显示的自定义帖子类型中提供页面的永久链接

在 Visual Composer 自定义网格模板上显示自定义字段图像

如何在仪表板帖子列表中显示自定义字段(替换标题)

无法在帖子中保存和显示更新的自定义多选下拉字段