gpt4 book ai didi

php - 覆盖 WooCommerce 类别列表 Walker 的最佳方法

转载 作者:行者123 更新时间:2023-12-02 06:15:49 25 4
gpt4 key购买 nike

覆盖 的最佳方法是什么? woocomerce 中定义的函数woocomerce 某个类中的 plugins 目录。
例如,我想更改函数 start_el在类中声明 WC_Product_Cat_List_Walker .我可以通过更改保留更改插件目录中的功能代码,直到我升级 woocomerce 插入。
如何在我的主题中覆盖它 functions.php文件?

最佳答案

尝试这个...

您可以创建一个类并扩展到 WC_Product_Cat_List_Walker。

class My_WC_Product_Cat_List_Walker extends WC_Product_Cat_List_Walker {
public $tree_type = 'product_cat';
public $db_fields = array ( 'parent' => 'parent', 'id' => 'term_id', 'slug' => 'slug' );

public function start_el( &$output, $cat, $depth = 0, $args = array(), $current_object_id = 0 ) {
$output .= '<li class="cat-item cat-item-' . $cat->term_id;

if ( $args['current_category'] == $cat->term_id ) {
$output .= ' current-cat';
}

if ( $args['has_children'] && $args['hierarchical'] ) {
$output .= ' cat-parent';
}

if ( $args['current_category_ancestors'] && $args['current_category'] && in_array( $cat->term_id, $args['current_category_ancestors'] ) ) {
$output .= ' current-cat-parent';
}

$output .= '"><a href="' . get_term_link( (int) $cat->term_id, $this->tree_type ) . '">' . __( $cat->name, 'woocommerce' ) . '</a>';

if ( $args['show_count'] ) {
$output .= ' <span class="count">(' . $cat->count . ')</span>';
}
}

}

然后像这样使用它:
add_filter('woocommerce_product_categories_widget_args', 'woorei_product_categories_widget_args', 10, 1);

function woorei_product_categories_widget_args($args) {
$args['walker'] = new My_WC_Product_Cat_List_Walker;
return $args;
}

关于php - 覆盖 WooCommerce 类别列表 Walker 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32901408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com