首先,我不是我的朋友的开发者,我可以获得所有类别ID“1292”的子类别,但它的工作正常,但我想只显示我从类别中选择的一些类别“ 1292“
<?php
$term_id = 1292;
$taxonomy_name = 'product_cat';
$term_children = get_term_children( $term_id, $taxonomy_name );
foreach ( $term_children as $child ) {
$term = get_term_by( 'id', $child, $taxonomy_name );
$category_thumbnail = get_woocommerce_term_meta($term->term_id, 'thumbnail_id', true);
$image = wp_get_attachment_url($category_thumbnail);
echo '<div class="col-md-2 col-sm-12">
<div class="ado-prdct-cat">
<div class="ado-prdct-cat-wrpr">
<a href="' . get_term_link( $child, $taxonomy_name ) . '"> <img src="'.$image.'">
</div>
<div class="ado-prdct-cat-ttl-wrpr">
' . $term->name . '</a>
</div>
</div>
</div>';
}
?>
类别ID 1292有15个子类别,我希望它们中的一些在父页面ID 1292中显示在页面上,如果有人知道相同的最佳方式
答案 0 :(得分:1)
选择在哪里进行,您是否可以在代码中对要使用/跳过的ID进行硬编码?
您在$ child中拥有孩子的学期ID,只需添加
if(in_array($child, array(123, 456))) continue;
前
$term = get_term_by( 'id', $child, $taxonomy_name );
跳过类别123和456,或使用!in_array
仅显示这些内容并跳过其他内容。
当然,您可以使用变量而不是array(123, 456)
。
修改:将其转换为shortcode也非常简单:
add_shortcode( "mycategoryprinter" , function($attributes) {
$skipids = array();
if(array_key_exists("skipids", $attributes)) {
$skipids = preg_split("/\s*,\s*/", $attributes["skipids"]);
}
$term_id = $attributes["termid];
$taxonomy_name = $attributes["taxonomy];
// code goes here, change echo to return
});
然后您可以使用
之类的内容[mycategoryprinter termid="1292" taxonomy="product_cat" skipids="123, 456"][/mycategoryprinter]