我一直在尝试找出如何从单个产品页面上删除商店侧边栏。我为此尝试了各种选择。我正在使用二十七主题。 我首先在我的子功能文件中尝试了来自Business Bloommer的此代码段。
add_action( 'wp', 'bbloomer_remove_sidebar_product_pages' );
function bbloomer_remove_sidebar_product_pages() {
if ( is_product() ) {
remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );
}
}
但是这不起作用。随后从另一个用户那里读取了一个线程,说该代码段不适用于二十七个主题。
然后我尝试通过在子主题中创建woocommerce / singleproduct.php并删除以下内容来覆盖woo Commerce模板woocommerce / templates / singleproduct.php:
<?php
/**
* woocommerce_sidebar hook.
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );
?>
这也不起作用。我在这里遗漏了明显的东西吗?如果有人对我做错了什么有深刻的见解,我将非常感谢。非常感谢。
答案 0 :(得分:0)
对于“二十十七岁”主题,Woocommerce WC_Twenty_Seventeen
中有一个特殊的类可以处理侧边栏。
因此,请使用以下命令从单个产品页面上删除侧边栏:
remove_action( 'woocommerce_after_main_content', array( 'WC_Twenty_Seventeen', 'output_content_wrapper_end' ), 10 );
add_action( 'woocommerce_after_main_content', 'remove_sidebar_from_output_content_wrapper_end', 10 );
function remove_sidebar_from_output_content_wrapper_end() {
// Only for single product pages
if( is_product() ) {
echo '</main></div></div>';
} else {
echo '</main></div>';
get_sidebar();
echo '</div>';
}
}
代码进入活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
但是您将必须在styles.css
文件中添加一些CSS规则,例如:
.has-sidebar.single-product.woocommerce-page:not(.error404) #primary {
width: 100% !important;
float: none !important;
}