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

使用shortcode替换Woocommerce分类描述时影响单品页问题排查

代码问题说明

你提供的代码存在两个核心错误,导致异常影响单产品页:

  • 钩子选择错误:你所挂载的woocommerce_short_description过滤器是单产品页产品简短描述的专属控制钩子,分类页的分类描述对应独立的专属钩子,挂错钩子自然会侵入单产品页的内容逻辑。
  • 分支返回逻辑错误:代码中if (! is_product_category()) { return; }的写法,会在非商品分类页场景下直接返回空值,直接清空了该钩子在其他所有页面的原有输出内容,直接导致单产品页的产品短描述被清空。

修复方案

方案1:修正原有代码逻辑(仅修复现有错误,不推荐)

如果暂时不想更换钩子,只需要把非分类页场景的原有内容原样返回即可,不要返回空值:

add_filter('woocommerce_short_description', function ($description) {
    if (is_product_category()) { 
        return do_shortcode('[porto_block id="510079"]');
    }
    return $description;
});

方案2:更换为分类描述专属钩子(推荐,完全不影响单产品页)

直接挂载到Woocommerce分类存档页的描述钩子上,从根源上避免影响其他页面逻辑:

add_filter('woocommerce_category_archive_description', function ($category_description) {
    // 若需要不同分类对应不同的porto_block,可在此处获取当前分类的自定义字段值替换固定id
    return do_shortcode('[porto_block id="510079"]');
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:09:03