2023.3.02 wordpress get_terms()参数和功能代码

一些用于自定义get_terms的方法和代码
功能
按照条件获取分类,包括分类法
参数
$args = array (
'taxonomy' => 'category', //分类法名称
'orderby' => 'name', //排序条件
'order' => 'ASC', //升序或者降序
'hide_empty' => true, //隐藏没有内容的分类
'include' => 'all',//数组,包括某些分类
'exclude' => 'all',//排除某些分类
'exclude_tree' => 'all', //排除分类树,即包括子分类
'number' => false, //显示数量
'offset' => '',//偏移
'fields' => 'all',//字段
'name' => '',//名称
'slug' => '',//别名
'hierarchical' => true, //层级
'search' => '', //搜索
'name__like' => '', //看起来像
'description__like' => '',//描述像
'pad_counts' => false, //can be 0, '0', '' too
'get' => '',
'child_of' => false, //上级的ID
'childless' => false,
'cache_domain' => 'core',
'update_term_meta_cache' => true, //can be 1, '1' too
'meta_query' => '',//按照自定义字段查询
'meta_key' => array(),
'meta_value'=> '',
);
$terms= get_terms($args);
例子
<?php
$args=array(
'orderby' => 'name',
'hide_empty' => false, //显示所有分类
'order' => 'ASC'
);
$categories=get_categories($args);
foreach($categories as $category) {
echo '<p>Category: <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </p> ';
echo '<p> Description:'. $category->description . '</p>';
echo '<p> Post Count: '. $category->count . '</p>';
}
?>
当前自定义文章没有大分类,获取1级分类和子分类
图片写在分类的说明里
<?php $taxonomies = get_terms( array(
'taxonomy' => 'introduction-category','orderby' => 'ID','order' => 'ASC',
'hide_empty' => false
) );
if ( !empty($taxonomies) ) :
foreach( $taxonomies as $category ) {
if( $category->parent == 0 ) {
echo '<h2 >'. esc_attr( $category->name ) .'</h2><div class="list">';
foreach( $taxonomies as $subcategory ) {
if($subcategory->parent == $category->term_id) {?>
<div class="item">
<a href="<?php bloginfo('url'); ?>/introduction-category/<?php echo esc_html( $subcategory->slug );?>"></a>
<div class="m-card__picture-area">
<div class="m-card__picture u-inner-hover-picture-zoom">
<img src="<?php echo term_description( $subcategory->term_id,'post_tag' ); ?>" alt="img">
</div>
<div class="m-card__caption">
<div class="m-card__caption-main"><?php echo esc_html( $subcategory->name );?></div>
</div>
</div>
</div>
<?php
}
}
echo'</div>';
}
}
endif; ?>
获取meta_key匹配的分类
$args = array(
'hide_empty' => false,
'meta_query' => array(
array(
'key' => 'project_status',
'value' => 'New',
'compare' => '='
)
));
$projects = get_terms( 'Projects', $args );
$terms = get_terms( array(
'taxonomy' => 'tax_slug',
'hide_empty' => false,
'meta_query' => array(
[
'key' => 'meta_key_slug_1',
'value' => 'desired value to look for'
]
),
'meta_key' => 'meta_key_slug_2',
'orderby' => 'meta_key_slug_2'
) );
« (NG)
相关文章