如何通过PHP实现WooCommerce产品短描述为空时自动隐藏对应标签页
修复方案
原有代码错误
- 条件逻辑写反:
!is_singular(['product'])表示非产品页才执行逻辑,与需求完全相反,需要删除开头的感叹号 - jQuery 选择器缺少引号:选择器为字符串类型,必须用引号包裹,否则会触发JS语法错误
- 未等待DOM加载完成就执行代码:JS执行时目标标签元素可能还未渲染,导致无法匹配到元素
- 仅隐藏了标签标题,未隐藏对应的内容面板,会引发标签切换异常
- 函数没有挂载到WordPress的执行钩子,代码不会被触发运行
修复后可用代码
将以下代码添加到主题的functions.php文件或者自定义代码插件中即可生效:
// 产品短描述为空时隐藏对应Elementor标签 add_action('wp_footer', 'remove_empty_short_description_tab'); function remove_empty_short_description_tab() { // 仅在产品详情页执行 if ( is_singular('product') ) { global $post; // 获取加工后的产品短描述内容 $short_description = apply_filters( 'woocommerce_short_description', $post->post_excerpt ); // 加trim避免空白内容被判定为非空 if ( empty( trim($short_description) ) ) { ?> <script> jQuery(document).ready(function($){ // 同时隐藏标签标题和对应内容区域 $('#elementor-tab-title-1562').hide(); $('#elementor-tab-content-1562').hide(); }); </script> <?php } } }
注意事项
- 如果你后续修改了Elementor标签的ID,需要同步替换代码中的标签ID值
内容的提问来源于stack exchange,提问作者TheFrisb
相关产品推荐
相关产品推荐

