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

在PHP echo的HTML代码中添加ACF字段判断报错,求助

问题分析与修正方案

你的代码问题

  • 语法错误:你在echo输出的字符串中直接插入了if( get_field('delivery_date') ):和endif;这类PHP控制语句。PHP会把这些内容当成普通字符串处理,再加上引号拼接混乱,直接导致语法报错。
  • 逻辑嵌入错误:PHP的控制语句(如if)不能直接嵌套在字符串里,必须跳出当前的echo上下文,单独执行逻辑后再继续输出HTML。

修正方案1:拆分echo与PHP逻辑(推荐)

这种写法把HTML输出和PHP判断分开,结构更清晰,便于维护,同时加入WordPress安全转义的最佳实践:

<?php
$link = get_permalink();
$availability = get_field('availability');
$delivery_date = get_field('delivery_date');
$url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
if ( has_post_thumbnail() ) {
    // 输出开头的HTML结构
    echo '<a href="' . esc_url($link) . '">
            <div class="thumbnail" style="background: url(' . esc_url($url) . ')">
                <div class="tags one">
                    <span class="availability">' . esc_html($availability) . '</span>';
    
    // 单独判断delivery_date字段,不为空才输出对应内容
    if ( !empty($delivery_date) ) {
        echo '<span class="delivery-date">' . esc_html($delivery_date) . '</span>';
    }
    
    // 输出剩余的HTML结构
    echo '
                </div>
            </div>
        </a>';
}
?>

补充说明:

  • esc_url()和esc_html()用于转义输出内容,避免XSS安全问题,是WordPress开发的标准做法。
  • !empty($delivery_date)能覆盖字段为空、false、null等多种空值场景,比直接调用get_field()判断更可靠。

修正方案2:使用三元运算符拼接字符串

如果想保持echo的连贯性,可以提前用三元运算符处理好要输出的内容:

<?php
$link = get_permalink();
$availability = get_field('availability');
$delivery_date = get_field('delivery_date');
$url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
if ( has_post_thumbnail() ) {
    // 用三元运算符生成delivery_date的HTML内容,为空则输出空字符串
    $delivery_html = !empty($delivery_date) ? '<span class="delivery-date">' . esc_html($delivery_date) . '</span>' : '';
    
    echo '<a href="' . esc_url($link) . '">
            <div class="thumbnail" style="background: url(' . esc_url($url) . ')">
                <div class="tags one">
                    <span class="availability">' . esc_html($availability) . '</span>
                    ' . $delivery_html . '
                </div>
            </div>
        </a>';
}
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:01:11