WooCommerce WordPress:如何在产品描述下方添加自定义代码
WooCommerce产品描述标签页下方添加自定义内容的解决方案
核心结论
WooCommerce原生没有专门针对产品描述标签页下方的钩子,woocommerce_product_after_tabs会作用于所有标签页,因此需要通过额外判断或模板修改来实现需求。
方法一:利用现有钩子结合JS判断激活标签
通过woocommerce_product_after_tabs钩子注入内容,再用JavaScript控制仅在描述标签激活时显示,无需修改模板文件:
add_action('woocommerce_product_after_tabs', 'display_content_only_after_description_tab'); function display_content_only_after_description_tab() { ?> <script> jQuery(document).ready(function($) { // 初始隐藏自定义内容 const customContent = $('#custom-post-description-content'); customContent.hide(); // 检查当前激活标签的逻辑 const checkActiveTab = () => { if ($('.woocommerce-tabs .tabs li.active a').attr('href') === '#tab-description') { customContent.show(); } else { customContent.hide(); } }; // 页面加载时执行一次判断 checkActiveTab(); // 监听标签切换事件,延迟执行确保标签切换完成 $('.woocommerce-tabs .tabs li a').on('click', function() { setTimeout(checkActiveTab, 100); }); }); </script> <div id="custom-post-description-content" class="woocommerce-custom-content"> <!-- 替换成你的自定义内容 --> <p>这是仅在描述标签页显示的自定义内容</p> </div> <?php }
方法二:修改产品描述模板(推荐子主题操作)
直接在产品描述的模板文件末尾添加内容,逻辑更直接且不依赖JS,但必须使用子主题避免主题更新覆盖修改:
- 找到当前主题下的
woocommerce/single-product/tabs/description.php文件 - 复制该文件到你的子主题对应目录(如
your-child-theme/woocommerce/single-product/tabs/) - 修改子主题中的模板文件,在
<?php the_content(); ?>之后添加自定义内容:
<?php if ( ! defined( 'ABSPATH' ) ) { exit; } global $post; $heading = apply_filters( 'woocommerce_product_description_heading', __( 'Description', 'woocommerce' ) ); ?> <?php if ( $heading ) : ?> <h2><?php echo esc_html( $heading ); ?></h2> <?php endif; ?> <?php the_content(); ?> <!-- 自定义内容开始 --> <div class="custom-description-content"> <p>这是产品描述下方的专属内容</p> </div> <!-- 自定义内容结束 -->
两种方法对比
- 方法一:无需修改模板,兼容性更强,适合不熟悉模板结构的用户;依赖JS实现显示控制,对禁用JS的场景无效。
- 方法二:逻辑简单,不依赖JS;但必须使用子主题操作,否则主题更新会丢失修改。
内容的提问来源于stack exchange,提问作者Cameron
相关产品推荐
相关产品推荐

