如何删除添加到Woocommerce li.product的类?

时间:2018-01-31 16:05:07

标签: php wordpress woocommerce taxonomy-terms

Woocommerce将指定的产品类别和属性作为自定义类添加到li.product

SelectionChanged

我们为每种产品分配了很多类别,这会减慢网站的速度。有没有办法删除那些额外的类?

3 个答案:

答案 0 :(得分:3)

在woocommerce插件“ 3.6.2”中,文件“ wc-template-functions.php”显示为:

//注意,要更改类,您将需要使用较新的woocommerce_post_class过滤器。

因此要删除我使用的“第一”和“最后”类:

add_filter( 'woocommerce_post_class', 'remove_post_class', 21, 3 ); //woocommerce use priority 20, so if you want to do something after they finish be more lazy
function remove_post_class( $classes ) {
    if ( 'product' == get_post_type() ) {
        $classes = array_diff( $classes, array( 'last','first' ) );
    }
    return $classes;
}

对于我使用的产品类别:

add_filter( 'product_cat_class', 'remove_category_class', 21, 3 ); //woocommerce use priority 20, so if you want to do something after they finish be more lazy
function remove_category_class( $classes ) {
    if ( 'product' == get_post_type() ) {
        $classes = array_diff( $classes, array( 'last','first' ) );
    }
    return $classes;
}

答案 1 :(得分:0)

如果你知道php,你可以编辑woocoommerce php模板文件来删除那些额外的类。 如果你打开文件,有一个php变量可以添加额外的类,它是一个数组。

答案 2 :(得分:0)

我建议对POST_CLASS函数应用过滤器,而不是编辑模板,因为woocommerce会定期更新这些参数,而要紧随其后可能会很痛苦。为此,您可以检查您是否处于产品循环中,或者是否存在也可以从产品页面中删除的产品,例如:

import { Component, OnInit, Input } from '@angular/core';
import { MatSidenav } from '@angular/material';

@Component({
  selector: 'app-layout-header',
  templateUrl: './layout-header.component.html',
  styleUrls: ['./layout-header.component.css']
})
export class LayoutHeaderComponent implements OnInit {
  @Input() inputSideNav: MatSidenav;

  constructor() { }

  ngOnInit() {
  }
}