描述
如果将“分类法”参数设置为‘link_category’,则将返回链接类别。
另见
- get_terms():可更改的参数类型。
参数
- $args
-
(string|array)(可选) 用于检索类别的参数。有关其他选项,请参见get_terms()。
- 'taxonomy'
(string) 检索分类项(term)的分类法。默认值为'category'。
默认值: ''
- 'taxonomy'
返回
(array) 类别对象列表。
源码
更新日志
版本 | 描述 |
---|---|
2.1.0 | 开始引入 |
使用示例
列出类别和描述
此示例将按字母顺序列出所有类别,这些类别显示为指向相应类别存档的链接。每个类别描述都列在类别链接之后。<?php $categories = get_categories( array( 'orderby' => 'name', 'order' => 'ASC' ) ); foreach( $categories as $category ) { $category_link = sprintf( '<a href="%1$s" alt="%2$s">%3$s</a>', esc_url( get_category_link( $category->term_id ) ), esc_attr( sprintf( __( 'View all posts in %s', 'textdomain' ), $category->name ) ), esc_html( $category->name ) ); echo '<p>' . sprintf( esc_html__( 'Category: %s', 'textdomain' ), $category_link ) . '</p> '; echo '<p>' . sprintf( esc_html__( 'Description: %s', 'textdomain' ), $category->description ) . '</p>'; echo '<p>' . sprintf( esc_html__( 'Post Count: %s', 'textdomain' ), $category->count ) . '</p>'; }
函数仅返回文章使用的类别
需要注意的是,默认情况下,
get_category()
将只返回正在使用的类别。这意味着,如果没有为类别分配文章,则不会返回该类别的类别对象。这意味着,如果您是开发人员,并且您创建了一个类别(可能在测试期间),您应该提供一个包含
'hide_empty' => false
的参数数组。检查下面的示例用法。$args = array( 'hide_empty' => false, ); get_categories($args); //This returns both used and unused categories
仅获取顶级类别
若要仅获取顶级分类,请将父值设置为零。此示例获取顶级类别的链接和名称。$categories = get_categories( array( 'orderby' => 'name', 'parent' => 0 ) ); foreach ( $categories as $category ) { printf( '<a href="%1$s">%2$s</a><br />', esc_url( get_category_link( $category->term_id ) ), esc_html( $category->name ) ); }
具有子类别链接菜单的特定类别父标题
– 可用于侧边栏应用程序
<div class="category-menu-container"> <ul class="category-menu"> <li class="unstyled"> <h4 class="category-menu-heading"> <?php echo get_cat_name( $category_id = 130 );?> </h4> </li> <?php $categories = get_categories( array( 'orderby' => 'name', 'order' => 'ASC', 'parent' => 130, ) ); foreach( $categories as $category ) { $category_link = sprintf( '<a href="%1$s" alt="%2$s">%3$s</a>', esc_url( get_category_link( $category->term_id ) ), esc_attr( sprintf( __( 'View all posts in %s', 'textdomain' ), $category->name ) ), esc_html( $category->name ) ); echo '<p>' . sprintf( esc_html__( '%s', 'textdomain' ), $category_link ) . '</p> '; } ?> </ul> </div>
如果没有要显示的类别,
get_categories()
将返回空数组。在发布类别页面使用的父类别下拉框
这是内置类别页面中使用的代码。wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'category_parent', 'orderby' => 'name', 'selected' => $category->parent, 'hierarchical' => true, 'show_option_none' => __('None') ) );
下面稍微修改的代码将抓取所有类别,并将它们显示为新级别(子类别)的缩进。选择框的名称和id属性值为‘select_name’。此select元素不会显示默认的“无”,因为原始代码用于将类别作为子类别附加到另一个类别(或“无”)。
wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'select_name', 'id' => 'select_name', 'hierarchical' => true ) );
下拉框
这里介绍了如何创建一个下拉框,其中包含子类别,例如,归档过去事件信息的类别。
这反映了wp_get_archives()
的下拉示例,该示例显示了如何为每月存档创建下拉框。假设要显示其子类别的类别是类别10,其类别“nicename”是“archives”。
<select name="event-dropdown"> <option value=""><?php echo esc_attr_e( 'Select Event', 'textdomain' ); ?></option> <?php $categories = get_categories( array( 'child_of' => 10 ) ); foreach ( $categories as $category ) { printf( '<option value="%1$s">%2$s (%3$s)</option>', esc_attr( '/category/archives/' . $category->category_nicename ), esc_html( $category->cat_name ), esc_html( $category->category_count ) ); } ?> </select>