当前浏览:首页 / WordPress函数 / get_categories()

get_categories( string|array $args = '' )

检索类别对象的列表

cat

category 分类more...


描述

如果将“分类法”参数设置为‘link_category’,则将返回链接类别。

另见


参数

$args

(string|array)(可选) 用于检索类别的参数。有关其他选项,请参见get_terms()

  • 'taxonomy'
    (string) 检索分类项(term)的分类法。默认值为'category'。

默认值: ''


返回

(array) 类别对象列表。



源码

查看源码 官方文档


更新日志

版本描述
2.1.0开始引入

使用示例

  • 示例1

    列出类别和描述
    此示例将按字母顺序列出所有类别,这些类别显示为指向相应类别存档的链接。每个类别描述都列在类别链接之后。

    <?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>';
    } 
    
  • 示例2

    函数仅返回文章使用的类别

    需要注意的是,默认情况下,get_category()将只返回正在使用的类别。这意味着,如果没有为类别分配文章,则不会返回该类别的类别对象。

    这意味着,如果您是开发人员,并且您创建了一个类别(可能在测试期间),您应该提供一个包含'hide_empty' => false的参数数组。检查下面的示例用法。

    		$args = array(
    			'hide_empty'      => false,
    		);
    		get_categories($args); //This returns both used and unused categories
    	
  • 示例3

    仅获取顶级类别
    若要仅获取顶级分类,请将父值设置为零。此示例获取顶级类别的链接和名称。

    $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 )
    	);
    }
    
  • 示例4

    具有子类别链接菜单的特定类别父标题

    – 可用于侧边栏应用程序

    <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>
    
  • 示例5

    如果没有要显示的类别,get_categories()将返回空数组。

  • 示例6

    在发布类别页面使用的父类别下拉框
    这是内置类别页面中使用的代码。

    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
    ) );
    
  • 示例7

    下拉框
    这里介绍了如何创建一个下拉框,其中包含子类别,例如,归档过去事件信息的类别。
    这反映了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>