我正在创建一个主题,不想在单个产品的页面上显示侧栏。
根据WooCommerce的建议,我制作了一份“templates“”文件夹(在woocommerce插件下)并安装在mytheme/templates, 将文件夹名称更改为“woocommerce“。在主题的根目录下,我创建了一个名为sidebar-shop.php.
现在,我已经在商店页面和单一产品页面上显示了侧栏。我试图删除do_action(\'woocommerce_sidebar\');
来自woocommerce/单一产品。php并尝试在woocomerce/shop/sidebar.php, 类似于:
if (!is_page(\'single-product\') {
get_sidebar(\'shop\');
}
但侧边栏仍然存在。
是否有只删除单个产品侧栏的有效选项?
最合适的回答,由SO网友:Brad Dalton 整理而成
单个产品的条件标记为is\\u product()
add_action(\'template_redirect\', \'remove_sidebar_shop\');
function remove_sidebar_shop() {
if ( is_product(\'add-page-i.d-here\') ) {
remove_action(\'woocommerce_sidebar\', \'woocommerce_get_sidebar\');
}
}
您可能还想将该产品页面上的布局更改为全宽,以消除间隙,并使用自定义正文类减小内容区域的宽度,您也可以有条件地生成该类。
Woo Commerce条件标记http://docs.woothemes.com/document/conditional-tags/
SO网友:Iggy
function remove_storefront_sidebar() {
if ( is_product() ) {
remove_action( \'storefront_sidebar\', \'storefront_get_sidebar\', 10 );
}
}
add_action( \'get_header\', \'remove_storefront_sidebar\' );
它与最新的woocommerce 2.5.2配合使用,还需要CSS:
.single-product.right-sidebar .content-area {
float: none;
margin-right: 0;
width: 100%;
}