如何在给定的WordPress代码中提取图片ALT文本?
解决WordPress代码中填充图片ALT文本的方法
你可以通过以下两种方式为图片填充对应的ALT文本:
方法1:直接读取图片ALT元数据
利用WordPress的get_post_meta()函数提取图片附件的ALT文本,替换原有空的alt属性即可:
修改后的完整代码:
<?php $logos = get_field('upload_logos'); $size = 'full'; if( $logos ): ?> <div> <div> <?php foreach( $logos as $logo ): ?> <div> <div class="ccrc-logo-box-inner"> <img src="<?php echo wp_get_attachment_url( $logo['ID'], $size ); ?>" alt="<?php echo esc_attr( get_post_meta( $logo['ID'], '_wp_attachment_image_alt', true ) ); ?>" > </div> </div> <?php endforeach; ?> </div> </div> <?php endif; ?>
- 核心代码:
get_post_meta( $logo['ID'], '_wp_attachment_image_alt', true )——专门读取图片附件的ALT文本元字段 - 用
esc_attr()包裹是为了转义特殊字符,避免HTML语法错误和XSS风险
方法2:用内置函数生成完整图片标签
如果想简化代码,直接使用WordPress的wp_get_attachment_image()函数,它会自动包含ALT文本、正确的图片地址及响应式属性:
修改后的代码:
<?php $logos = get_field('upload_logos'); $size = 'full'; if( $logos ): ?> <div> <div> <?php foreach( $logos as $logo ): ?> <div> <div class="ccrc-logo-box-inner"> <?php echo wp_get_attachment_image( $logo['ID'], $size, false, array( 'class' => '' ) ); ?> </div> </div> <?php endforeach; ?> </div> </div> <?php endif; ?>
- 该函数会自动读取图片的ALT文本(若未设置则留空或使用图片标题)
- 第四个参数是属性数组,可在此添加自定义class或其他HTML属性
内容的提问来源于stack exchange,提问作者Shakeel Ahmed
相关产品推荐
相关产品推荐

