我想根据所选的woocommerce父产品类别更改页面的CSS。我想根据这些类别更改导航栏和页脚的配色方案。我已经创建了样式表来实现此目的,并且如果我在浏览器的开发人员选项中更改了css路径,那么它将起作用。
我已经尝试编辑taxonomy-product_cat.php文件,并且能够使用以下代码成功导航到其他页面:
// Get current category slug
global $wp_query;
$cat_slug = $wp_query->query_vars['product_cat'];
// Call template conditionally
if($cat_slug == 'sport-bikes') {
wc_get_template( 'archive-land.php' );
} else {
wc_get_template( 'archive-product.php' );
}
我在这里遇到的两个问题是:
1)这仅适用于特定的子类别-如果我使用父类别“土地”,则无效。
2)我无法使用任何模板来编辑CSS。在这种情况下,我创建了“ archive-land.php”模板。
我还尝试将以下内容添加到我的functions.php文件中:
// add taxonomy term to body_class
function woo_custom_taxonomy_in_body_class( $classes ){
if( is_singular( 'product' ) )
{
$custom_terms = get_the_terms(0, 'product_cat');
if ($custom_terms) {
foreach ($custom_terms as $custom_term) {
$classes[] = 'product_cat_' . $custom_term->slug;
}
}
}
return $classes;
}
add_filter( 'body_class', 'woo_custom_taxonomy_in_body_class' );
基于此链接上的以下解决方案: Woocommerce custom style for specific product category?
这里遇到的问题是:
1)正文类仍为“定制支持”
2)我的css文件专用于更改页眉和页脚的颜色
基本上,我只想根据父产品类别更改页眉和页脚的配色方案。
编辑:
部分解决-我创建了一个单独的“ archive-land.php”和“ archive-marine.php”,并将以下代码添加到了每个调用我所需的css文件的文件的顶部:
<?php
function c3land_theme_styles(){
wp_enqueue_style( 'hoverland', get_template_directory_uri() . '/css/hoverland.css' );
wp_enqueue_style( 'land', get_template_directory_uri() . '/css/land.css' );
}
add_action( 'wp_enqueue_scripts','c3land_theme_styles' );
?>
这需要切换CSS,但是我仍然需要在父类别而不是子类别上进行更改,这是我在taxonomy-product_cat.php文件上更新的代码:
// Get current category slug
global $wp_query;
$cat_slug = $wp_query->query_vars['product_cat'];
// Call template conditionally
if($cat_slug == 'sport-bikes') {
wc_get_template( 'archive-land.php' );
}
if($cat_slug == 'outboard-motors') {
wc_get_template( 'archive-marine.php' );
}
else {
wc_get_template( 'archive-product.php' );
}
1)我最初提出的解决方案中是否存在任何潜在问题,或者是否有更优雅/更适当的方法来实现这一目标?
2)如何通过父类别来称呼我的“ archive-land.php或archive-marine.php”?