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

如何在WordPress短代码(shortcode)中插入自定义PHP代码

报错原因排查
  • 核心语法错误:多余的add_action('foto_banner', 10 );调用,add_action第二个参数要求传入回调函数,你错误填入了优先级数值10,缺少回调参数,直接触发PHP致命错误。同时这行代码本身无任何业务作用,属于冗余代码。
  • 短代码规范错误:WordPress短代码的回调函数要求必须返回输出内容,不能直接打印/输出内容。你当前代码中使用the_field()、echo都是直接输出内容,会导致短代码渲染位置错乱、页面结构异常。
  • 潜在兼容问题:未判断ACF(高级自定义字段)插件是否激活,若插件未启用时调用get_field、the_field会直接报函数未定义错误。
正确实现方案

首先将以下代码放到你当前使用主题的functions.php文件末尾,或者自定义功能插件的代码文件中:

// 注册banner-picture短代码,调用ACF自定义字段foto_banner
add_shortcode( 'banner-picture', 'custom_get_banner_picture' );
function custom_get_banner_picture() {
    // 先判断ACF插件是否激活,避免函数未定义报错
    if ( ! function_exists( 'get_field' ) ) {
        return 'Texto não informado';
    }
    $banner_img = get_field( 'foto_banner' );
    if ( $banner_img ) {
        // 短代码必须返回内容,不能直接输出
        return $banner_img;
    }
    return 'Texto não informado';
}

然后调整你原有短代码的调用部分:如果***[banner-picture]***的星号不是主题要求的特殊占位格式,请去掉星号,直接写[banner-picture]即可:

[ux_banner height="500px" bg="[banner-picture]" bg_size="original"]

注意:PHP代码不能直接放在文章/页面的可视化编辑器、短代码输入框中,必须放到主题功能文件或插件文件中才会生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:06:03