You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现仅当Advanced Custom Fields上传图片时显示整个div内容?

解决ACF图片存在时才显示指定Div的问题

看了你的代码,问题出在条件判断的语法上——你写的if( $image_l ) ?>没有用大括号包裹后续的HTML内容,导致PHP只会执行这一行判断,后面的<div>不管图片是否存在都会直接输出,完全没起到条件控制的作用。

修正后的代码示例

下面是调整后的代码,确保只有当指定的ACF图片字段有值时,才会渲染整个widget-accessories-page容器:

<?php 
$image_l = get_field('accessories-image-large'); 
$image_s = get_field('accessories-image-small'); 
$size = 'full'; 

// 这里可以根据需求调整判断逻辑:
// || 表示只要其中一张图片存在就显示;&& 表示两张都存在才显示
if( $image_l || $image_s ) { ?>
    <div class="widget-accessories-page">
        <div id="anchor-accessories-page"></div>
        <div class="widget-accessories-t...">
            <!-- 可选:在这里输出图片内容 -->
            <?php if($image_l) {
                // 输出大图,wp_get_attachment_image会自动生成标准img标签
                echo wp_get_attachment_image( $image_l, $size );
            } ?>
            <?php if($image_s) {
                echo wp_get_attachment_image( $image_s, $size );
            } ?>
            <!-- 你的其他页面内容继续写在这里 -->
        </div>
    </div>
<?php } ?>

关键说明

  1. 条件包裹逻辑:用{ ?>和<?php }把需要控制的所有HTML内容包裹起来,这样PHP会先判断条件是否成立,再决定是否渲染里面的内容。
  2. 灵活调整判断规则:如果要求必须两张图片都上传才显示容器,就把||换成&&即可。
  3. ACF字段值的有效性:get_field获取图片字段时,不管你设置的是返回「附件ID」还是「图像数组」,只要字段有上传内容,变量就会是非空值,直接用if($变量)判断就有效。

内容的提问来源于stack exchange,提问作者mmhnyc1220

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:55:05