2014-09-06 36 views
4

像许多人第一次开始使用woocommerce一样,我需要知道如何定制它。在我的特殊情况下,我想从购物车,结帐和单个产品页面中删除边栏。我的补充工具栏使用下面的代码定义,并要求从的sidebar.php如何从购物车,结帐和单个产品页面中删除Woocommerce侧边栏?

<?php dynamic_sidebar('global-sidebar'); ?> 

我已经尝试了很长的时间来找到问题的解答,但我似乎无法找到正确的代码或解决方案。也许问自己会问题。顺便说一句,我真的很感谢其他文章中的答案和方法,但他们不适合我。

在我走的更远之前,我使用Bootstrap(截至2014年的最新版本)来设计我的Wordpress网站。不知道这是否重要,但也许它确实。

有人可以告诉我如何找到,然后告诉Woocommerce不要在购物车,结帐和单个产品页面上显示任何类型的侧边栏?

我真的很希望找到解决方案,并要求你裸露在我身边,因为我不是一名开发人员,所以很容易遵循指示,将不胜感激。

亲切的问候,

奥利弗

附: 该网站可以在这里找到>wp.wunderful.co.uk(分段站点为客户网站项目)

+0

您是否检查这些页面上的小部件菜单? – Siyah 2014-09-06 13:25:21

+0

我不熟悉这些小部件在这些页面上的工作方式。 woocommerce页面让我困惑,因此请求帮助。尽管感谢您的评论。 – 2014-09-06 21:21:30

+0

如果你还好,我可以在管理面板中检查它。 – Siyah 2014-09-07 07:39:31

回答

4

从理论上讲,类似下面应该工作,但我没有测试它。 (要添加到主题functions.php)

function so_25700650_remove_sidebar(){ 
    if(is_checkout() || is_cart() || is_product()){ 
     remove_action('woocommerce_sidebar', 'woocommerce_get_sidebar', 10); 
    } 
} 
add_action('woocommerce_before_main_content', 'so_25700650_remove_sidebar'); 

如果你看一下宇模板,你会看到

<?php 
    /** 
    * woocommerce_sidebar hook 
    * 
    * @hooked woocommerce_get_sidebar - 10 
    */ 
    do_action('woocommerce_sidebar'); 
?> 

这佑说:“在这里显示侧边栏”。但它将woocommerce_get_sidebar函数添加到woocommerce_sidebar钩子...这很方便,因为它允许您解除解锁的功能,就像我上面显示的一样。最后,我正在使用Woo's conditional logic来解除您在请求的页面上的动作。

我在woocommerce_before_main_content钩子上运行我的功能,我认为应该工作,假设您的主题没有删除该钩子。如果是这样,那么你大概可以使用wp_head或其他保证在那里的东西,尽管如此,你可能想要检查is_checkout()等功能是否存在,或者如果你停用WooCommerce,那么可能会破坏你的主题。就我所知,我应该只在WooCommerce特定的页面上运行,因此检查WooCommerce函数是否定义可能是过度的。

重要提示:

这是假设的默认主题或不运行它自己的自定义侧边栏功能的主题。如果你的主题是做别的事情,你需要调查它的特定功能和模板。

+0

我喜欢你提供的简单易懂的答案,谢谢。然而,你能否澄清一下,我是否需要删除“woocommerce_sidebar hook”代码并将其替换为remove_sidebar代码,还是仅仅在woocommerce_sidenar代码下面执行?我还要复制和粘贴您提供的代码的具体页面? – 2014-09-07 17:58:52

+0

为了说明我将原始代码复制并粘贴到原始代码下面的single-product.php页面上,并且它没有删除侧边栏。 – 2014-09-07 18:02:13

+0

你*可以*将所有Woo模板复制到你的主题中,并在需要时删除侧边栏钩子,但我认为将我的代码粘贴到你的主题的functions.php中是最容易的。 – helgatheviking 2014-09-07 18:48:24

1

你应该做的是在你的主题中创建一个名为woocomemrce.php的文件,如果它不存在的话。然后,您应该查看完整页面的页面模板文件以及带侧边栏的页面,以查看它们的结构以及它们的不同之处。 然后将其中一个文件的内容复制到woocommerce.php中,并用woocommerce_content()see this page for details替换循环。 最后,看看不同页面模板的不同之处,然后在它们不同的地方使用if语句。

if(is_post_type_archive('product')) : 
    //Content to display in the list view (i.e. with sidebar) 
else : 
    //Content to display all other views (i.e. without sidebar) 
endif; 
2
.woocommerce-cart .sidebar { 
    display: none; 
} 

.woocommerce-cart .content-area { 
    width: 100%; 
} 

custom/style.css添加此。

0

要从你想用行动钩function.php文件的购物车,结账和单品页边栏删除 -

add_action('woocommerce_before_main_content', 'remove_sidebar'); 
    function remove_sidebar() 
    { 
     if(is_checkout() || is_cart() || is_product()) { 
     remove_action('woocommerce_sidebar', 'woocommerce_get_sidebar', 10); 
     } 
    } 

在这里你可以得到WooCommerce行动和过滤钩子 - https://docs.woothemes.com/wc-apidocs/hook-docs.html

0

进入“购物车”页面,从仪表板的页面,从“页面属性节” - >“模板”,选择“全宽”这会给你一个页面withou t侧边栏。

相关问题