如何让Elementor产品数据标签页默认激活Reviews标签
解决Elementor Pro产品页面默认激活Reviews标签问题
方案1:PHP代码(添加到子主题functions.php)
通过WooCommerce过滤器直接修改默认激活标签,适配Elementor渲染逻辑:
add_filter( 'woocommerce_product_tabs', 'set_reviews_tab_as_default', 98 ); function set_reviews_tab_as_default( $tabs ) { // 确认Reviews标签存在 if ( isset( $tabs['reviews'] ) ) { // 清除所有标签的激活状态 foreach ( $tabs as &$tab ) { $tab['active'] = false; } // 将Reviews标签设为默认激活 $tabs['reviews']['active'] = true; } return $tabs; }
方案2:JavaScript强制切换(添加到子主题footer或自定义JS区域)
如果PHP方案因Elementor前端渲染优先级失效,用JS确保页面加载后切换标签:
document.addEventListener('DOMContentLoaded', function() { const reviewsTabBtn = document.querySelector('.woocommerce-tabs ul.tabs li.reviews_tab'); const reviewsPanel = document.getElementById('tab-reviews'); if (reviewsTabBtn && reviewsPanel) { // 移除所有标签与面板的激活类 document.querySelectorAll('.woocommerce-tabs ul.tabs li').forEach(item => item.classList.remove('active')); document.querySelectorAll('.woocommerce-tabs .panel').forEach(panel => panel.classList.remove('active')); // 给Reviews标签和面板添加激活类 reviewsTabBtn.classList.add('active'); reviewsPanel.classList.add('active'); } });
补充:通过PHP加载JS(避免手动编辑footer文件)
如果想直接在子主题functions.php中集成JS逻辑:
add_action( 'wp_footer', 'enforce_reviews_tab_active' ); function enforce_reviews_tab_active() { // 仅在产品页面执行 if ( is_product() ) { ?> <script> document.addEventListener('DOMContentLoaded', function() { const reviewsTabBtn = document.querySelector('.woocommerce-tabs ul.tabs li.reviews_tab'); const reviewsPanel = document.getElementById('tab-reviews'); if (reviewsTabBtn && reviewsPanel) { document.querySelectorAll('.woocommerce-tabs ul.tabs li').forEach(item => item.classList.remove('active')); document.querySelectorAll('.woocommerce-tabs .panel').forEach(panel => panel.classList.remove('active')); reviewsTabBtn.classList.add('active'); reviewsPanel.classList.add('active'); } }); </script> <?php } }
内容的提问来源于stack exchange,提问作者Sophie Nicole Casey
相关产品推荐
相关产品推荐

