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

WooCommerce商品分类自定义字段无法在页脚显示的解决方法咨询

问题描述

已成功为WooCommerce商品分类创建自定义字段wh_meta_title,可在分类编辑页正常编辑保存,但页脚输出该字段内容的代码未生效,相关代码如下:

add_action('wp_footer', 'insert_my_page_schemas');
function insert_my_page_schemas() {
if ( ! is_product_category() ) { 
return;
}
$wh_meta_title = get_term_meta($term_id, 'wh_meta_title', true);
if ( ! $wh_meta_title ) {
return;
}
echo '<script type="application/ld+json">'. $wh_meta_title .'</script>';
}
解决方案

代码存在两处核心问题,修改后即可正常输出:

  • 未定义$term_id变量,导致无法读取对应分类的自定义字段值
  • 输出的转义写法不直观,且未做安全处理

修正后的完整代码

add_action('wp_footer', 'insert_my_page_schemas');
function insert_my_page_schemas() {
    // 仅在商品分类页面执行
    if ( ! is_product_category() ) { 
        return;
    }
    
    // 获取当前商品分类的ID
    $term_id = get_queried_object_id();
    // 读取自定义字段值
    $wh_meta_title = get_term_meta($term_id, 'wh_meta_title', true);
    
    // 字段为空则终止执行
    if ( empty($wh_meta_title) ) {
        return;
    }
    
    // 安全输出脚本,对内容做转义避免风险
    echo '<script type="application/ld+json">' . esc_html($wh_meta_title) . '</script>';
}

关键修改说明

  1. 获取当前分类ID:通过get_queried_object_id()函数获取当前页面对应的商品分类ID,确保get_term_meta能正确读取目标字段
  2. 安全输出优化:用esc_html()对字段内容做转义,避免XSS注入风险;同时替换原代码的转义字符为正常HTML标签写法,提升代码可读性
  3. 空值判断优化:使用empty()替代原非空判断,逻辑更严谨

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:47:38