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

Elementor Pro重建WooCommerce单品页后修改日期代码失效怎么办

问题根因

你之前用的代码是通过挂载WooCommerce原生单商品页的动作钩子实现日期输出的,这类钩子只有在WooCommerce默认模板渲染逻辑运行时才会触发。使用Elementor Pro主题构建器重建单商品页时,Elementor会完全替换原生WooCommerce单商品的渲染流程,你之前代码挂载的原生钩子不会被执行,自然就看不到输出的修改日期,和代码本身逻辑正确性无关。

可用解决方案

二选一即可,优先推荐无代码方案。

方案1:无代码动态标签实现(兼容性最好)

不需要保留原来的自定义代码,直接在Elementor模板里配置即可:

  • 进入Elementor Pro的单商品模板编辑界面
  • 在你需要展示修改日期的位置,添加「文本」或「标题」组件
  • 点击组件内容输入框旁的动态标签按钮,在动态选项列表中选择「文章日期」
  • 点开该动态标签的设置项,将日期类型切换为「最后修改时间」,按需自定义日期格式、前后缀显示文案,保存模板即可生效。

方案2:保留原有代码逻辑,通过短代码嵌入

如果原来的代码有自定义的日期格式、显示规则需要保留,把原来挂载钩子的代码改成短代码形式即可:

  1. 先注释/删除你之前添加的挂载WooCommerce原生钩子的旧代码
  2. 将下面的代码添加到主题子主题的functions.php文件,或者用代码片段插件插入:
// 注册商品最后修改日期短代码
add_shortcode('product_modified_date', 'output_product_last_modified_date');
function output_product_last_modified_date() {
    global $product;
    if ( !is_a( $product, 'WC_Product' ) ) {
        $product = wc_get_product( get_the_ID() );
    }
    if ( !$product ) return '';
    
    // 下方可替换为你原有代码里的自定义日期格式、文案逻辑
    $date_format = get_option( 'date_format' );
    $modified_time = get_the_modified_date( $date_format, $product->get_id() );
    return sprintf( '<div class="product-update-date">商品最后更新时间:%s</div>', $modified_time );
}
  1. 回到Elementor模板编辑页,在要展示日期的位置添加「短代码」组件,在短代码输入框中填入[product_modified_date],保存模板即可。
失效排查清单

如果按上述操作后仍不显示,按顺序排查:

  • 确认你编辑的Elementor单商品模板的显示规则已经覆盖对应商品,没有被更高优先级的其他模板替换
  • 短代码方案确认旧的挂载钩子代码已经完全移除,不存在语法错误
  • 清空站点页面缓存、Elementor生成的静态CSS/JS缓存后再刷新测试
  • 确认商品本身存在修改记录,不是新建后从未编辑过的状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 09:42:23