(WooCommerce)仅在单一产品页面上删除边栏

时间:2014-01-04 作者:Rico Letterman

我正在创建一个主题,不想在单个产品的页面上显示侧栏。

根据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\'); 
}
但侧边栏仍然存在。

是否有只删除单个产品侧栏的有效选项?

3 个回复
最合适的回答,由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网友:Abhik

Here it goes..

function remove_sidebar_shop() {
    if ( is_singular(\'product\') ) {
        remove_action(\'woocommerce_sidebar\', \'woocommerce_get_sidebar\');
    }
}
add_action(\'template_redirect\', \'remove_sidebar_shop\');
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%;
}

结束

相关推荐

How to find installed plugins

我一直在寻找WordPress网站上安装的插件列表。虽然我找到了一种方法,“http wp plugins.nse”暴力脚本,但我不知道如何使用这个脚本。如果有人知道任何方法,请分享。