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

WooCommerce自定义短代码:解决Elementor编辑器兼容问题

解决Elementor编辑器中WooCommerce SKU短代码报错问题

你的问题核心是没有对$product变量的有效性做判断——在Elementor编辑器这类无产品上下文的环境中,global $product获取到的是null,直接调用get_sku()方法会触发致命错误,导致编辑器无法加载。

只需给函数加上有效性校验逻辑,在无有效产品对象时返回空值即可:

function display_woo_sku() {
    global $product;
    
    // 检查产品对象是否存在且为合法的WooCommerce产品实例
    if ( ! $product || ! is_a( $product, 'WC_Product' ) ) {
        return '';
    }
    
    return $product->get_sku();
}
add_shortcode( 'woo_sku', 'display_woo_sku' );

代码说明:

  • ! $product:判断$product是否为空(比如编辑器无产品上下文时的情况)
  • ! is_a( $product, 'WC_Product' ):额外确保拿到的是合法的WooCommerce产品对象,避免意外类型错误
  • 满足任一条件时返回空字符串,否则正常返回SKU值

替换你主题functions.php里原有的代码后,Elementor编辑器就能正常加载,同时在有产品上下文的页面依然能正常输出SKU。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:14:52