与许多第一次开始使用woocommerce的人一样,我需要知道如何自定义它。在我的特殊情况下,我想从购物车,结帐和单个产品页面中删除侧边栏。我的侧边栏是使用以下代码从 sidebar.php 定义和调用的:
<?php dynamic_sidebar('global-sidebar'); ?>
我已经尝试了很长时间才能找到有效的答案,但我似乎无法找到正确的代码或解决方案。或许自问这个问题会有用。顺便说一下,我非常欣赏其他文章中的答案以及操作方法,但它们对我不起作用。
在我再进一步之前,我使用Bootstrap(截至2014年的最新版本)来设计我的Wordpress网站。不确定这是否重要,但也许它确实以某种方式。
有人可以告诉我我是如何找到的,然后告诉Woocommerce不要在购物车,结帐和单品页面上显示任何类型的侧边栏吗?
P.S。 该网站可以在这里找到&gt; wp.wunderful.co.uk(客户网站项目的暂存站点)
答案 0 :(得分: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' );
如果你看一下Woo模板,你会看到
<?php
/**
* woocommerce_sidebar hook
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );
?>
这是Woo说:“在这里显示侧边栏”。但是它将woocommerce_get_sidebar
函数添加到woocommerce_sidebar
钩子......这很方便,因为它允许你取消挂钩这个函数就像我上面所示。最后,我使用Woo's conditional logic仅从您请求的页面上取消该函数的操作。
我正在woocommerce_before_main_content
钩子上运行我的函数,我认为假设你的主题没有删除那个钩子我应该工作。如果是这样,那么你可能会使用wp_head
或保证存在的东西,但是你可能想要检查is_checkout()
等功能是否存在,或者你是否曾冒险破坏你的主题停用WooCommerce。正如我所知,我应该只在特定于WooCommerce的页面上运行,因此检查WooCommerce功能是否被定义可能是过度的。
重要提示:
这假定默认主题或主题没有运行自己的自定义侧边栏功能。如果您的主题正在做其他事情,您将需要调查其特定的功能和模板。
答案 1 :(得分:3)
这
https://wordpress.org/support/topic/remove-sidebar-for-woocommerce-cart-and-checkout-pages/
关于你的主题,可能是subtheme,function.php
add_action('wp_head', 'hide_sidebar' ); function hide_sidebar(){ if(is_cart() || is_checkout()){ ?>
<style type="text/css">
#secondary {
display: none;
}
</style>
<?php
}
答案 2 :(得分:2)
.woocommerce-cart .sidebar {
display: none;
}
.woocommerce-cart .content-area {
width: 100%;
}
在custom/style.css
中添加。
答案 3 :(得分: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;
答案 4 :(得分:1)
转到&#34;购物车&#34;来自仪表板页面的页面,来自&#34;页面属性部分&#34; - &GT; &#34;模板&#34;选择&#34;全宽&#34;这会给你一个没有侧边栏的页面。
答案 5 :(得分: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 Action和Filter Hook - https://docs.woothemes.com/wc-apidocs/hook-docs.html