Wordpress 从循环中的cmb2文件自定义字段获取图像alt(cmb2!)

Wordpress 从循环中的cmb2文件自定义字段获取图像alt(cmb2!),wordpress,Wordpress,我使用wordpress CMS和CMB2插件来创建cmb字段。这是一个完美的组合,但我无法从使用“文件”字段类型添加的图像中获取alt文本。像往常一样,我注册可重复字段,并通过以下方式将其带到前端: <?php $successful_students_items = get_post_meta( get_the_id(), 'successful_students_block_box', true ); if( !em

我使用wordpress CMS和CMB2插件来创建cmb字段。这是一个完美的组合,但我无法从使用“文件”字段类型添加的图像中获取alt文本。像往常一样,我注册可重复字段,并通过以下方式将其带到前端:

<?php $successful_students_items = get_post_meta( get_the_id(), 'successful_students_block_box', true );
                                  if( !empty( $successful_students_items ) ) {
                                    foreach( $successful_students_items as $successful_students_item ) { ?>
                                <div class="ipd-je-8 ipd-rz-8 ipd-pv-12 ipd-ke-24">
                                    <div class="rjeudirnskxzi nnu">
                                                        <div class="h1ge6swchqzj6de">
                                                            <div class="h1ge6swchqzj6de_cvz">
                                                          <figure class="o309iruhgtybgyu5">
                                          <blockquote><?php echo $successful_students_item['successful_students_block_testimonial']; ?>
                                            <div class="ingi3h38d8jj4"></div>
                                          </blockquote>
                                          <img alt="" src="<?php echo $successful_students_item['successful_students_block_image']; ?>"/>
                                          <div class="ewr4i9548jfdeuthie">
                                            <h5><?php echo $successful_students_item['successful_students_block_name_lastname']; ?>
                                              <span>
                                                <br>
                                                <?php echo $successful_students_item['successful_students_block_position']; ?>
                                              </span>
                                            </h5>
                                          </div>
                                        </figure>
                                                          </div>
                                                        </div>
                                                      </div>
                                                  </div>
                                    <?php } 
                                  } ?>

"/>


但我无法获取图像alt文本,尝试通过谷歌搜索,但我发现的内容无效。也许有人可以帮助我吗?谢谢!!

CMB在上传图像时总是为图像存储一个ID。您只需通过以下方式获取该ID:

$successful_students_block_image_id = get_post_meta( get_the_id(), $successful_students_item['successful_students_block_image_id'], true );
$gallery_image=wp_get_attachment_image( $successful_students_block_image_id,'full');
echo $gallery_image;

这将为您获取该图像的alt并打印图像。

您可以通过一种替代方式来实现您的要求,即通过使用CMB2的文件列表类型,您将获得图像数组。因此,使用数组键来获取单个图像id,例如

foreach(数组_键($successful_students_items)作为$successful_students_item_id) {

/**现在,通过使用此id,您可以获得附件的单个数据**/

$successful_students_block_image_alt=get_post_meta($successful_students_item_id','wp_attachment_image_alt',true); $successful_students_block_image_url_details=wp_get_attachment_image_src($successful_students_item_id,'full')

/**这将返回一个数组**/ $successful_students_block_image_url=$successful_students_block_image_url_详细信息[0]

}
/**现在您可以在img标签中使用这些单独的数据。**/

很抱歉,我可能在某些部分出错$gallery\u image=wp\u get\u attachment\u image($successful\u students\u item['successful\u students\u block\u image\u id','full')echo$gallery\u image;请尝试上面的代码并让我知道。Soo,首先我的图像cmb前缀是“successful\u students\u block\u image”。我需要将“successful\u students\u block\u image\u id”更改为“successful\u students\u block\u image”,正如我所理解的那样是吗?不需要,它只是在那里,你只需要使用它。只需复制代码并测试它一旦