wp dropdown categories 创建分类目录下拉选项表单

函数描述

显示一个目录下拉选择表单元素。

使用方法

<?php wp_dropdown_categories( $args ); ?>

默认使用

<?php $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'            => '',
	'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',	
); ?>

默认情况下,以上代码显示方法为:

  • 按分类id升序排列
  • 不显示分类中的文章数量
  • 不显示没有文章的分类目录
  • 不排除任何分类目录
  • 直接显示(echo)分类目录
  • 表单中没有选中任何分类目录
  • 不以分级结构显示分类目录
  • 分类 ‘cat’ 为下拉选择的表单名称
  • 分类表单css类 ‘postform’
  • 没有深度限制No depth limit
  • Tab index 为 0
  • 使用的分类方法为 category
  • 如果没有分类项目隐藏下拉选择
  • 分局选择的分类项目输出分类id

参数

$args
(
string|array) (
可选) 覆盖默认参数的数组或查询字符串

返回值

(string)
除非‘echo’ 参数设置为0,函数将直接显示HTML内容。

数组参数

show_option_all
(
string) (
optional) 显示 ‘ 所有分类目录‘ 选项的文本,下拉选项默认显示为 ‘
所有分类目录‘。

Default: ”
show_option_none
(
string) (
optional) 在下拉选择表单的顶部创建一个附加的<option>选项,以便不选择任何分类时使用。

Default: ”
option_none_value
(
string) (
optional)  ‘ no categories‘ 选项的值。

Default: -1
orderby
(
string) (
optional) 用来给分类排序的数据列名称,可用的值为 ‘ID’, ‘name’ 与 ‘slug’

Default: ‘ID’
order
(
string) (
optional) 分类的排序方式,可用的值为 ‘ ASC‘ 和 ‘ DESC‘。

Default: ‘ASC’
show_count
(
boolean) (
optional) 是否隐藏分类中的文章数量。

Default: 0/False
hide_empty
(
boolean) (
optional) 是否隐藏没有文章的分类目录。

Default: 1/True
child_of
(
integer) (
optional) 显示某个分类项目的子分类项目,更多信息查看  get_categories().

Default: 0/False
exclude
(
string) (
optional) 排序的分类ID,更多信息查看  get_categories().

Default: ”
include
(
string array) (
optional) 包含的分类ID,更多信息查看  get_categories().

Default: ”
exclude_tree
(
string) (
required) 可选,排除某个分类和该分类的子分类。

Default:
None
echo
(
boolean) (
optional) 直接显示下拉表单还是返回表单以便在PHP中使用。

Default: 1/True
depth
(
integer) (
optional) 子分类的最大深度,除非 hierarchical 设置为ture,次选项将被忽略。

Default: 0/False
tab_index
(
integer) (
optional) 下拉表单的 ‘ tabindex‘ 属性。

Default: 0/False
name
(
string) (
optional) 下拉表单元素的 ‘ name‘ 属性。

Default: ‘cat’
id
(
string) (
optional) 下拉表单元素的 ‘ id‘ 属性。

Default: ‘name’
class
(
string) (
optional) 下拉表单元素的 ‘ class‘ 属性。

Default: ‘postform’
selected
(
integer) (
optional) 下拉表单中,选中了哪个分类ID。

Default: 0/False
hierarchical
(
boolean) (
optional) 显示所有分类目录 (0/False) ,或显示分类目录的多少级子分类。

Default: 0/False
pad_counts
(
boolean) (
optional) 在显示的分类目录中包含该分类目录中文章的数量。如果’ show_counts‘ 和 ‘ hierarchical‘ 同时设置为true,此选项将自动被设置为true。

Default: 0/False
taxonomy
(
string) (
optional) 需要从中获取分类项目的自定义分类法,可用的值为 ‘ category‘, ‘ post_tag‘ 或其他已注册的自定义分类法。

Default: category
hide_if_empty
(
boolean) (
optional) 如果没有分类项目,是否隐藏下拉表单, (1/True) 为隐藏,  (0/False) 为不隐藏。

Default: 0/False
value_field
(
string) (
optional) 下拉表单的选项值,可接受的选项为:’ term_id‘, ‘ name‘, ‘ slug‘, ‘ term_group‘, ‘ term_taxonomy_id‘, ‘ taxonomy‘, ‘ description‘, ‘ parent‘, ‘ count‘.

Default: term_id

使用示例

带提交按钮的下拉表单

显示一个有提交按钮的页面选择下拉表单,下拉表单中表现页面的层次关系。

<li id="categories">
	<h2><?php _e( '分类目录:' ); ?></h2>
	<form id="category-select" class="category-select" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">
		<?php wp_dropdown_categories( 'show_count=1&hierarchical=1' ); ?>
		<input type="submit" name="submit" value="view" />
	</form>
</li>

使用 JavaScript 而不是提交按钮提交下拉表单

下面的代码将显示一个分类下拉表单,选择某个分类时,页面将跳转到这个分类存档页面。

<li id="categories"><h2><?php _e( '按分类过滤' ); ?></h2>
	<?php wp_dropdown_categories( 'show_option_none=选择分类' ); ?>
	<script type="text/javascript">
		<!--
		var dropdown = document.getElementById("cat");
		function onCatChange() {
			if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
				location.href = "<?php echo esc_url( home_url( '/' ) ); ?>?cat="+dropdown.options[dropdown.selectedIndex].value;
			}
		}
		dropdown.onchange = onCatChange;
		-->
	</script>
</li>

使用 JavaScript 而不是提交按钮提交下拉表单(2)

此示例中使用了显示参数 (echo=0) ,在Javascript代码中插入了简单的 preg_replace。这样,即使浏览器不支持JavaScript,下拉表单也能退回到标准的HTML表单显示。

<li id="categories">
	<h2><?php _e( '按分类过滤' ); ?></h2>
	<form id="category-select" class="category-select" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">

		<?php
		$args = array(
			'show_option_none' => __( '选择分类' ),
			'show_count'       => 1,
			'orderby'          => 'name',
			'echo'             => 0,
		);
		?>

		<?php $select  = wp_dropdown_categories( $args ); ?>
		<?php $replace = "<select$1 onchange='return this.form.submit()'>"; ?>
		<?php $select  = preg_replace( '#<select([^>]*)>#', $replace, $select ); ?>

		<?php echo $select; ?>

		<noscript>
			<input type="submit" value="View" />
		</noscript>

	</form>
</li>

故障排除

下拉选项为空

默认情况下,wp_dropdown_categories 将返回至少有一篇文章的分类,如果你想覆盖此设置,可以设置 hide_empty 参数为 false (“0”)。

示例:

<?php wp_dropdown_categories( 'hide_empty=0' ); ?>
支付确认
需要支付
¥0
二维码刷新中