我一直在研究和调整我的自定义Wordpress主题并覆盖WooCommerce模板,现在安装了WooCommerce来纠正WooCommerce页面上发生的一系列小格式问题 . 我现在是购物车和结账,是的他们使用 cart.php
(以及任何checkout php),但也使用主要的Wordpress主题 page.php
. 我已经能够在其他地方使用 is_woocommerce()
而不是在这里,因为我在结帐和购物车上使用了've learned the WooCommerce docs say that can' .
is_woocommerce() - 如果在使用WooCommerce模板的页面上,则返回true(购物车和结帐是带有短代码的标准页面,因此不包括在内) . http://docs.woothemes.com/document/conditional-tags/
那么我怎样才能改变这些页面的外观呢?我有一个“查看所有帖子”和顶部的日期/时间,以及page.php的类别侧边栏,我不想出现在结帐和购物车上的明显原因,因为它们根本没有意义 . 我有什么选择?
我可以使用除page.php之外的其他模板吗?
这是一个选择吗?这是不好的做法......它是否会在这个循环的每个页面上造成更多负载?我把它放在哪里? http://saiyedfaishal.wordpress.com/2014/01/06/check-if-it-is-woocommerce-page/
最好的方法是什么?谢谢你的帮助!这个问题有点与 - How to modify woocommerce_before_cart action有关
6 回答
我发现这在
page.php
中是有条件的,包括WooCommerce购物车和结帐屏幕 .您可以使用is_cart()条件标记:
WooCommerce有许多选项可用于修改购物车和结帐页面 . 以下是我建议的三个:
使用WooCommerce条件标签
is_cart()
和is_checkout()
函数在其页面上返回true . 例:修改模板文件
主要的购物车模板文件位于
wp-content/themes/{current-theme}/woocommerce/cart/cart.php
主要的结帐模板文件位于
wp-content/themes/{current-theme}/woocommerce/checkout/form-checkout.php
要编辑这些内容,请先将它们复制到您的子主题中 .
使用wp-content / themes / / page- .php
page-{slug}.php
是将通过WP仪表板手动分配的第二个模板 .这比我的其他解决方案更安全,因为如果您删除WooCommerce,但忘记删除此文件,内部代码(可能依赖于WooCommerce函数)赢得't break, because it' s从未调用过(除非因为您有一个带有slug
{slug}
的页面) .例如:
wp-content/themes/{current-theme}/page-cart.php
wp-content/themes/{current-theme}/page-checkout.php
我使用page-checkout.php模板来更改购物车页面的 Headers . 我在/ wp-content / themes / childtheme / woocommerce /中将其重命名为page-cart.php . 这使您可以更好地控制包装html,页眉和页脚 .
您可以使用函数:wc_get_page_id( 'cart' )来获取页面的ID . 此功能将页面设置用作'cart'页面,而不是slug . 这意味着当您在设置页面上为'cart'设置不同的URL时,它也将继续有效 . 这适用于所有类型的Woocommerce特殊页面,如'checkout','shop'等 .
例:
另一种完全覆盖cart.php的方法是复制:
然后在yourtheme / woocommerce / cart / cart.php做任何你需要的事情