You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Woocommerce单个产品页面description.php自定义内容不显示求助

解决WooCommerce产品描述页添加专属信息不显示的问题

嘿,我之前也碰到过一模一样的坑,给你梳理几个最靠谱的排查方向和解决办法,一步步来:

1. 先确认你改对了模板文件

WooCommerce的模板会被当前主题覆盖,千万别直接改插件目录里的description.php!你得找到当前主题(或子主题)下的woocommerce/single-product/description.php文件来修改。如果主题里没有这个路径,就把插件目录wp-content/plugins/woocommerce/templates/single-product/description.php复制到主题对应的路径下再改,这样主题更新也不会丢你的修改。

2. 检查专属产品的判断逻辑是否正确

要给特定产品加信息,必须先精准定位到目标产品,比如通过产品ID:

// 先获取当前产品对象
global $product;
// 把123换成你要加信息的产品ID
if ( $product->get_id() === 123 ) {
    echo '<div class="custom-product-note">这里是这个产品的专属信息!</div>';
}

要是ID写错了,或者没加这个判断逻辑,自然不会显示内容。也可以用产品slug来判断:if ( $product->get_slug() === 'your-product-slug' )

3. 缓存!缓存!缓存!

这是最容易忽略的点!修改模板后,网站的页面缓存、浏览器缓存、插件缓存都会让你看不到新内容。先:

  • 清空网站上的缓存插件(比如WP Rocket、W3 Total Cache)
  • Ctrl+F5强制刷新浏览器(跳过本地缓存)

4. 测试模板是否真的被加载

可以先在description.php里随便加一行测试文本,比如<p>我是测试内容!</p>,如果刷新后看不到,说明这个模板根本没被当前主题使用——有些主题会完全重写WooCommerce的产品页面结构,这时候你得找主题对应的产品描述模板,或者用WooCommerce的钩子来添加内容(比如woocommerce_single_product_summary钩子,比改模板更稳妥)。

5. 排查主题/插件冲突

有时候其他插件(比如自定义产品页面的插件)或者主题会干扰模板的输出。可以:

  • 暂时切换到WordPress默认主题(比如Twenty Twenty-Four),再测试信息是否显示
  • 禁用所有非WooCommerce的插件,逐一排查哪个插件在捣乱

给你个完整的示例代码

把这段代码放到主题的description.php里,替换掉原有内容(或者在合适位置插入):

<?php
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

global $post, $product;

$short_description = apply_filters( 'woocommerce_short_description', $post->post_excerpt );

if ( ! $short_description ) {
    return;
}
?>
<div class="woocommerce-product-details__short-description">
    <?php echo $short_description; ?>
    
    <!-- 专属产品信息开始 -->
    <?php
    // 替换为你的目标产品ID
    if ( $product->get_id() === 456 ) {
        echo '<div style="margin-top:20px; padding:15px; background:#f0f8ff; border-radius:4px;">
                <h4>专属提示</h4>
                <p>这是仅针对该产品的专属说明内容</p>
              </div>';
    }
    ?>
    <!-- 专属产品信息结束 -->
</div>

最后提醒下,尽量用子主题修改模板,避免主题更新时丢失你的自定义内容~

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

火山引擎 最新活动