我正在使用WooCommerce和SuperStore主题。在meta中。php文件是这一行,
echo $product->get_categories( \', \', \'<span class="posted_in">\' . _n( \'Category:\', \'Categories:\', $cat_count, \'woocommerce\' ) . \' \', \'.</span>\' );
它显示分配给职位的类别,但不按层次顺序显示。我想按层次顺序显示这些。
我还发现了这段代码,经过一些更改后,它以正确的顺序显示类别,但如果顶级父类不是前一个类别,我需要一个新的行标记。
$taxonomy = \'product_cat\';
// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
// separator between links
$separator = \' » \';
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
$term_ids = implode( \',\' , $post_terms );
$terms = wp_list_categories( \'title_li=&style=none&echo=0&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
$terms = rtrim( trim( str_replace( \'<br />\', $separator, $terms ) ), $separator );
// display post categories
echo $terms;
}
示例:
儿童鞋(sub)
童鞋(sub)
现在显示为:Shoes»Kids»Kids»Shoes
我需要它显示为:
鞋子»儿童
儿童»鞋
感谢您的帮助:)
最合适的回答,由SO网友:beamkiller 整理而成
我已通过创建列表解决了此问题
http://codex.wordpress.org/Template_Tags/wp_list_categories
将样式更改为列表,然后根据需要使用CSS设置样式:)
<?php
$taxonomy = \'product_cat\';
// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
$term_ids = implode( \',\' , $post_terms );
$tophelp_categories = wp_list_categories( \'title_li=<span class="posted_in">Kategóriák:</span>&style=list&echo=0&depth=0&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
// display post categories
echo ($tophelp_categories);
}
?>