到目前为止,大家好,我知道我的问题与一个关于“woocommerce”的常见问题密切相关。
我一直在使用各种woo挂钩、过滤器,并在名为woocommerce/的文件夹中,在我的子主题中创建原始woo模板文件的副本。
这是可行的,我能够进行编辑,将woocommerce整合到我的主题中。
我想做的是,Woocommerce使用归档产品。php显示产品类别。它还使用此模板显示该类别的产品
I\'d like to style the products page very differently to the category page and create another archive template that displays the products of a category
我在考虑使用新产品。php模板页或将是我的最佳选择。我对学习越来越多关于插件的知识非常感兴趣,因此我尝试远离CSS快速修复,学习使用模板文件和挂钩。
Advice or points in the right direction would be greatly appreciated.
最合适的回答,由SO网友:Nicolai Grossherr 整理而成
通常,您可以告诉WordPress加载不同的模板。最常见的方法是使用template_redirect
或者template_include
钩最好使用template_include
如本节所述article. 下面是如何实现这一点的示例:
Code:
// load the woocommerce category archive template
add_filter( \'template_include\', \'wpse138858_woocommerce_category_archive_template\' );
function wpse138858_woocommerce_category_archive_template( $original_template ) {
// we\'re loading the template conditionally,
// but only if we\'re actually on a woocommerce category archive
if ( is_product_category() ) {
// you\'ve to create the template you want to use here first
return get_template_directory().\'/woocommerce-category-archive.php\';
} else {
return $original_template;
}
}
其他信息:
注:对于woocommerce,可能有一种更具体的方法来实现这一点,这取决于他们如何处理模板加载。为此,您必须扩展您的研究和/或深入woocommerce代码
编辑:如果你想用woocommerce的方式,你需要的是功能wc_get_template_part()
- 前WC 2.1,woocommerce_get_template_part()
, 现已弃用。我给了一个answer 关于前一段时间如何使用后者,您可以为新命名的-功能相同-功能进行相应的操作。当然,答案是关于函数的直接使用,在您的情况下,您可能想要并且应该使用相应的钩子wc_get_template_part
. 有了这些信息,您应该可以通过woocommerce的方式来实现这一点。