WordPress下拉列表输出分类标签:wp_dropdown_categories

WordPress模板标签wp_dropdown_categories用于输出分类列表,与其他输出分类列表的函数比较,wp_dropdown_categories()函数不是以<li>列表输出,而是<select>下拉列表。

wp_dropdown_categories( string|array $args = '' )

函数参数

$args

数组或字符串值

wp_dropdown_categories()函数$args参数默认的值如下:

$args = array(
	'show_option_all'    => '',
	'show_option_none'   => '',
	'option_none_value'  => '-1',
	'orderby'            => 'ID',
	'order'              => 'ASC',
	'show_count'         => 0,
	'hide_empty'         => 1,
	'child_of'           => 0,
	'exclude'            => '',
	'include'            => '',
	'echo'               => 1,
	'selected'           => 0,
	'hierarchical'       => 0,
	'name'               => 'cat',
	'id'                 => '',
	'class'              => 'postform',
	'depth'              => 0,
	'tab_index'          => 0,
	'taxonomy'           => 'category',
	'hide_if_empty'      => false,
	'value_field'	     => 'term_id',
);

wp_dropdown_categories()函数$args参数可用的值如下:

show_option_all

字符串值,默认为空

在下拉列表的开始处添加一个value为0的<option>,该值指定<option>的文本,例如:所有分类

show_option_none

字符串值,默认为空

在下拉列表的开始处添加一个value为-1的<option>,该值指定<option>的文本。

option_none_value

字符串值,默认值:-1

为show_option_none添加的<option>指定一个value值。

orderby

字符串值,默认值:ID

以何种方式排序

  • ID:分类的ID
  • name:分类名称
  • slug:分类别名
  • count:文章数量
  • term_group

order

字符串值,默认值:ASC

分类的排序顺序

  • ASC:升序排列;
  • DESC:降序排列;

show_count

布尔值,默认值:false

是否显示分类下文章数量

hide_empty

布尔值,默认值:1

是否隐藏没有文章的分类,默认隐藏,为0则会显示没有文章的分类。

child_of

整数型,默认值:0

指定一个分类ID,将输出该分类下的子分类,但不包括该分类。

exclude

字符串,默认为空

要排除的分类ID,如果为字符串值时,多个分类ID用逗号分隔。如果hierarchical为true,则相应的子分类也会被排除。

include

字符串,默认为空

要显示的分类ID,多个分类ID用逗号分隔。

exclude_tree

字符串,默认为空

要排除的分类ID,不管hierarchical为何值,相应的子分类都会被排除。

echo

布尔值,默认值:1

默认直接输出分类列表,如果为0则只返回结果而不输出。

depth

整数型,默认值:0

  • 0:输出所有的分类和子分类;
  • 1:只输出顶级分类,不包含任何子分类;
  • n:根据n的具体数字来显示相应等级的分类;
  • -1:输出所有的分类和子分类,不论hierarchical的值是多少,都不以层级的方式输出;

tab_index

布尔值,默认值:false

为<select>标签添加tabindex属性

name

字符串值,默认值:cat

<select>标签name属性的值,默认为cat

id

字符串值,默认值:name参数指定的值

<select>标签id属性的值,默认为name参数指定的值

class

字符串值,默认值:postform

<select>标签class属性的值

selected

整数型,默认值:0

指定一个分类ID,将为其添加selected属性,即选中状态。

hierarchical

布尔值,默认值:0

是否以层级的方式显示子分类,默认否。

pad_counts

布尔值,默认值:false

是否将子分类的文章数量计算在父分类下,一般情况下,我们不会直接在父分类下发表文章,即父分类的文章总数为0,如果pad_counts的值为true,则显示父分类的文章数量为所有子分类文章数量的总和。如果show_count和hierarchical的值都为true,则pad_counts的值自动为true。

taxonomy

字符串值,默认值:category

自定义分类法

hide_if_empty

布尔值,默认值:false

在没有返回结果时是否隐藏下拉菜单,true为隐藏

value_field

字符串值,默认值:term_id

指定<option>的value值

  • term_id:分类ID
  • name:分类名称
  • slug:分类别名
  • term_taxonomy_id:分类ID
  • taxonomy:分类法名称,例如:category
  • description:分类描述
  • parent:父分类的ID
  • count:文章数量
  • term_group

函数使用示例

以层级方式显示一级子分类,并显示没有文章的分类,显示分类下文章数量,<option>的value值取分类的别名

<?php
	$args = array(
		'depth' => 2,
		'hide_empty' => 0,
		'hierarchical' => 1,
		'show_count' => 1,
		'value_field' => 'slug',
	);
	wp_dropdown_categories($args);
?>

下面的代码输出一样的结果:

<?php wp_dropdown_categories('depth=2&hide_empty=0&hierarchical=1&show_count=1&value_field=slug'); ?>

扩展阅读

wp_dropdown_categories()函数位于:wp-includes/category-template.php

相关函数:

阿里云