我试图更改特定产品类别页面的模板,但我不能让我的生活让它发挥作用。我尝试过taxonomy-product_cat-the-category但无济于事。我使用wpml与3种不同语言的类别,如果这有所不同。我尝试过3种语言中的每一种,但仍然无法正常工作。不要理解可能导致这种情况的原因。
答案 0 :(得分:2)
首先复制taxonomy-product_cat.php
&来自WooCommerce插件目录的archive-product.php
- wordpress\wp-content\plugins\woocommerce\templates
到您的主题 - wordpress\wp-content\themes\your-theme\woocommerce
。
然后在主题的woocommerce目录中复制archive-product.php
文件,例如archive-product-2.php
,archive-product-3.php
等。稍后您将根据您的类别修改这些文件。< / p>
然后打开taxonomy-product_cat.php
文件。代码将如下所示。
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
wc_get_template( 'archive-product.php' );
我们需要根据我们的条件修改此代码中的模板调用wc_get_template()
。
首先获取当前类别slug&amp;然后我们可以比较slu ..根据slug,我们将调用不同的归档产品文件。
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
// Get current category slug
global $wp_query;
$cat_slug = $wp_query->query_vars['product_cat'];
// Call template conditionally
if($cat_slug == 'accessories') {
wc_get_template( 'archive-product-2.php' );
} else {
wc_get_template( 'archive-product.php' );
}
<强>更新强>
根据我的经验,最好的方法是通过复制到主题文件来避免WooCommerce模板覆盖。 WooCommerce定期更新模板,最好每次更新模板以避免将来出现问题。因此,如果可能,最多使用除模板覆盖之外的过滤器挂钩。
答案 1 :(得分:-1)
您无法更改特定类别的WP模板,但
仅限覆盖设计:您可以在每个类,ID或标记名称的开头使用 body.term-yourcategoryname 来执行css:
body.term-car h1 { 红色; font-size:22px; }
为了增强布局:或添加一些新功能,您可以在子主题中的archive-product.php中使用wooommerce默认功能,例如: $ term-&gt; name; 。
示例:强>
if($term->name == "car") {
// your code will goes here
}