将自定义CSS添加到指定类别中的WooCommerce产品页

时间:2017-12-01 作者:Blake Shiman

我花了几个小时研究如何做到这一点,但我发现的每件事都以一种我无法理解的方式解释了这一点。我不擅长编码,但我知道如何检查元素并从中进行工作,但在这种情况下这对我没有帮助。

我想对指定类别的产品使用不同的页面布局/模板。我正在使用WooCommerce 我能够使用inspect元素以我想要的方式重新创建产品页面。然后我将文本复制到自定义css中,效果很好。然而,这最终是一个全球性的变化。

我的大多数产品页面都会受益于使用默认模板,而不是使用自定义模板。我想知道如何在括号内添加代码,以便我添加的自定义css(自定义模板)只应用于指定类别的产品。

我希望这一切都有意义。这里有一些图片给你一个直观的例子。

enter image description here

我已经知道我想向修改后的产品页面模板添加什么自定义css。我希望将此自定义css指定给特定类别就像添加类似于此的括号一样简单(抱歉,我肯定这是错误的,但我看到的自定义css看起来类似于此)

产品类别2{此处自定义css更改}

感谢您抽出时间阅读本文,我感谢您的帮助。

5 个回复
SO网友:MarkPraschan

这是我的解决方案。。。将以下内容添加到functions.php 在我的孩子主题中:

add_filter( \'body_class\',\'my_body_classes2\' );
function my_body_classes2( $classes ) {

if ( is_product() ) {

    global $post;
    $terms = get_the_terms( $post->ID, \'product_cat\' );

    foreach ($terms as $term) {
        $product_cat_id = $term->term_id;
        $classes[] = \'product-in-cat-\' . $product_cat_id;    
    }
}
return $classes;
}
现在,每当您查看单个产品页面时,该产品所属的每个类别的附加CSS类都将添加到<body> 标签

然后,如果要更改类别2或类别4中任何单个产品页面的样式,可以使用以下CSS:

.product-in-cat-2 , .product-in-cat-4 {
    color: #ffffff;
}

SO网友:Daniel Fonda

将此添加到您的功能中。phphttps://gist.github.com/thegdshop/3197540

这应该在单个prlduct页面上添加适当的类别类。

SO网友:TurboWeb.ro

1) 安装插件“add costum CSS”

2) 默认情况下,这不会显示添加css的框。你需要进入插件(管理栏的下半部分),会有一个关于“为以下页面启用costum CSS”的问题,然后选中“产品”,现在你将有一个框,可以在通过woocommerce进入单个产品时在其中添加CSS。

我不知道你是否可以通过这种方法来做这种事情,我需要这种方法来删除产品页面上的渲染阻塞CSS。

SO网友:Ashar Zafar

Add a body class related to the product category in WooCommerce将此添加到您的函数中。php

add_filter( \'body_class\', \'wc_cat_names\' );
function wc_cat_names( $classes ) {
    if(is_product()){
    global $post;
    $terms = get_the_terms( $post->ID, \'product_cat\' );
        foreach ($terms as $term) {
            $classes[] = $term->slug;
        }
    }
    return $classes;
}

SO网友:Aadii Mughal

我在函数中添加了此代码。php文件

dashboard ...>>> appearance >>> editor >>>> functions.php 
粘贴的代码底部

add_filter( \'body_class\',\'my_body_classes2\' );
function my_body_classes2( $classes ) {

if ( is_product() ) {

    global $post;
    $terms = get_the_terms( $post->ID, \'product_cat\' );

    foreach ($terms as $term) {
        $product_cat_id = $term->term_id;
        $classes[] = \'product-in-cat-\' . $product_cat_id;    
    }
}
return $classes;
}
然后我转到仪表板…>>>产品>>>>类别>>>将鼠标悬停在“编辑”按钮上,我得到的id

我在单一产品页面上放置的相同id

.product-in-cat-(ID) {
    color: #ffffff;
}
成功了

结束

相关推荐