gpt4 book ai didi

php - Woocommerce 更改 $product->get_categories 的顺序

转载 作者:行者123 更新时间:2023-12-05 00:10:59 26 4
gpt4 key购买 nike

我需要用 slug 排序“$product->get_categories()”的结果。

模板使用这段代码:

$cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) );

//And after...

<?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', $cat_count, 'woocommerce' ) . ' ', '</span>' ); ?>

我在教程中看到,我可以使用这段代码,但不起作用(在 functions.php 中):

function wptt_cat_order( $args ){

$args['orderby'] = 'slug';
$args['order'] = 'ASC';
return $args;

} // wptt_cat_order
add_filter( 'woocommerce_product_subcategories_args', 'wptt_cat_order' );

我的另一个问题是(但并不比另一个问题重要),为什么他在“_n()”函数中使用 $cat_count 而不是“get_the_terms( $post->ID, 'product_cat' )”? first 只是一个数字 O_O。

最佳答案

简单的答案:您不能使用该方法对类别进行排序。

您将需要使用 wp_get_post_terms() 编写自己的循环,它允许您传递参数(例如 orderby)。像下面这样的东西应该可以工作(但我还没有测试过):

$args = array(
'orderby' => 'name',
);
$product_cats = wp_get_post_terms( $product->id, 'product_cat', $args );
$cat_count = sizeof( $product_cats );

echo '<span class="posted_in">' . _n( 'Category:', 'Categories:', $cat_count, 'woocommerce' );
for ( $i = 0; $i < $cat_count; $i++ ) {
echo $product_cats[$i]->name;
echo ( $i === $cat_count - 1 ) ? '' : ', ';
}
echo '</span>';

关于php - Woocommerce 更改 $product->get_categories 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33106244/

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