wordpress获取不同类型分类函数:get_terms()


【函数说明】

检索分类法或分类法列表中的term。

【函数用法】

get_terms($taxonomies, $args = )

传递变量按 wp_parse_args()等函数所用的格式。

$myterms = get_terms("orderby=count&hide_empty=false");

未指定值的变量使用以下默认值(下文中有说明)。下面的列表中含有$args,将改写默认值。

$args = array(
    'orderby'       => 'name', 
    'order'         => 'ASC',
    'hide_empty'    => true, 
    'exclude'       => array(), 
    'exclude_tree'  => array(), 
    'include'       => array(),
    'number'        => , 
    'fields'        => 'all', 
    'slug'          => , 
    'parent'         => ,
    'hierarchical'  => true, 
    'child_of'      => 0, 
    'get'           => , 
    'name__like'    => ,
    'pad_counts'    => false, 
    'offset'        => , 
    'search'        => , 
    'cache_domain'  => 'core'
); 
?> 
  • orderby — 默认值为’name’,可以是名称,计数或空(使用term_id)
  • order — 默认值为ASC。有效值也包括DESC。
  • hide_empty — 默认值为true。不返回空$terms。
  • fields — 默认值为all。
  • slug — 任何含有slug的term都可以作为该变量的值。默认为空字符串。
  • hierarchical — 是否返回层级分类法。默认值为true。
  • name_like — 默认值为空字符串。
  • pad_counts — 默认值为FALSE。值为true时将计算包括$terms在内的所有子辈。
  • get — 默认值为空。可通过为’all’赋值来改写’hide_empty’和’child_of’。
  • child_of — 默认值为0。获取该term的所有后代。
  • parent — 默认值为0。获取该term的直系子辈(即上辈明确为该值的term)。

详细介绍

在查询被送出前可自定义查询,也可用过滤器控制输出结果。

缓存具有该term,若要将已成立的term及$taxonomies、$args数组一同传递时,’get_terms’过滤器将被调用。

传递term数组前,若要将term数组和$taxonomies、$args一同传递,’get_terms’过滤器也将被调用。

‘list_terms_exclusions’过滤器传递编译的Exclusion和$args。

【函数应用】

获取所有分类按‘count’排序

字符串参数格式:

$categories = get_terms( 'category', 'orderby=count&hide_empty=0' );

数组参数格式:

 $categories = get_terms( 'category', array(
 	'orderby'    => 'count',
 	'hide_empty' => 0
 ) );

获取所有友情链接的分类:

$mylinks_categories = get_terms('link_category', 'orderby=count&hide_empty=0');

列出所有不带链接的自定义分类:

 $terms = get_terms("my_taxonomy");
 $count = count($terms);
 if ( $count > 0 ){
     echo "<ul>";
     foreach ( $terms as $term ) {
       echo "<li>" . $term->name . "</li>";
        
     }
     echo "</ul>";
 }

列出所有带上链接的自定义分类:

$args = array( 'taxonomy' => 'my_term' );

$terms = get_terms('my_term', $args);

$count = count($terms); $i=0;
if ($count > 0) {
    $cape_list = '<p class="my_term-archive">';
    foreach ($terms as $term) {
        $i++;
    	$term_list .= '<a href="/term-base/' . $term->slug . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'), $term->name) . '">' . $term->name . '</a>';
    	if ($count != $i) $term_list .= ' &middot; '; else $term_list .= '</p>';
    }
    echo $term_list;
}

【源代码】

get_terms() 位于 wp-includes/taxonomy.php.