说明
该标签在一个没有提交按钮的选择框(如下拉式选框)中展示分类目录列表。
用法
<?php wp_dropdown_categories( $args ); ?>
默认用法
<?php $args = array(
'show_option_all' => ,
'show_option_none' => ,
'orderby' => 'ID',
'order' => 'ASC',
'show_last_update' => 0,
'show_count' => 0,
'hide_empty' => 1,
'child_of' => 0,
'exclude' => ,
'echo' => 1,
'selected' => 0,
'hierarchical' => 0,
'name' => 'cat',
'class' => 'postform',
'depth' => 0 ); ?>
默认情况下的显示状态:
- 升序排列分类目录ID
- 不显示最新更新
- 不显示分类目录下的文章总数
- 不显示“空”分类
- 不排除任何分类
- 显示(回应)分类目录
- 选项框中不选中任何分类
- 不以分层结构显示分类目录
- 为列表命名为“cat”
- 将列表赋值给'postform'类
- 无层数限制
参数
show_option_all
(字符串)生成下拉式选项框的HTML,从而允许你选定所有分类目录。
show_option_none
(字符串)生成下拉式选项框的HTML,从而允许你不选定任何分类目录。
orderby
(字符串)按某种标准为分类目录排序。有效值包括:
- 'ID' ——默认值
- 'name'
order
(字符串)为分类目录排序(升序或降序)有效值包括:
- 'ASC'(升序) ——默认值
- 'DESC'(降序)
show_last_updated
(布尔型)是(TRUE)否(FALSE)显示分类目录下最新更新日志的日期。默认值为FALSE。
有效值包括:
- 1 (true)
- 0(false)——默认值
show_count
(布尔型)是否显示每个分类目录下现有的日志总数。有效值包括:
- 1 (true)
- 0(false)——默认值
hide_empty
(布尔型)是否隐藏(不显示)不含有文章的分类目录。有效值包括:
- 1 (true)——默认值
- 0(false)
child_of(整数)
只显示某一个分类的子分类;用该分类的ID作为参数值。无默认值。
exclude
(字符串)将要排除的分类目录的ID列表,各ID用逗号隔开。例如, 'exclude=4,12' 表示不显示或返回ID为4和12的分类。默认值为不排除任何分类。
exclude_tree
(字符串)定义需要排除的父分类ID列表,各ID用逗号隔开。用该参数排除某个父分类目录及其所有子分类目录。因此 'exclude_tree=5' 可排除ID为5的父分类及其所有子分类。该参数引入于WP 2.7.1。
echo
(布尔型)显示结果(TRUE),或返回结果以供PHP使用(FALSE)。默认值为TRUE。
- 1 (true)——默认值
- 0(false)
selected
(整数)在显示框中选中/显示的分类目录的ID。默认为不选中任何分类目录。
hierarchical
(布尔型)以分层形式显示分类目录(子分类目录内嵌于其父分类目录下)。默认值为FALSE。有效值包括:
- 1 (True)—— 默认值
- 0 (False)
name
(字符串)下拉式选框被赋予的名称。默认为cat'。
class
(字符串)被赋给下拉式选项框的类,默认为'postform'。
depth(整数)
该参数决定wp_list_pages所生成的分类目录列表中所允许的分类层级的层数。默认值为0(显示包括子分类目录在内的所有分类目录)。该参数引入于WP 2.5。
- 0 —— 显示所有分类目录和他们的子分类目录(默认)
- -1 —— 以平面(不缩进)方式显示所有分类目录和他们的子分类目录
- 1 —— 只显示顶级分类目录
- n —— 该值表示可以缩进显示的分类目录层数。
示例
带有提交按钮的下拉式选项框
在WordPress侧边栏的无序列表中,以HTML格式显示带有层级的分类目录下拉式列表,有提交按钮,给出各分类目录下的文章总数。
<li id="categories"> <h2><?php _e('Categories:'); ?></h2> <form action="<?php bloginfo('url'); ?>" method="get"> <?php wp_dropdown_categories('show_count=1&hierarchical=1'); ?> <input type="submit" name="submit" value="view" /> </form> </li>
用JavaScript显示一个没有提交按钮的下拉式选项框
下面这个示例摘自WordPress论坛上的一个帖子,该示例借用了show_option_none参数。
<li id="categories"><h2><?php _e('Posts by Category'); ?></h2>
<?php wp_dropdown_categories('show_option_none=Select category'); ?>
<script type="text/javascript"><!–
var dropdown = document.getElementById("cat");
function onCatChange() {
if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
location.href = "<?php echo get_option('home');
?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
}
}
dropdown.onchange = onCatChange;
–></script>
</li>
用JavaScript显示一个没有提交按钮的下拉式选项框(2)
下面这段代码使用了echo参数(echo=0)。在JavaScript代码中插入一个简单的 preg_replace。即使没有JavaScript,代码也可正常运行(提交按钮被noscript标签包裹)。
<li id="categories">
<h2><?php _e('Posts by Category'); ?></h2>
<form action="<?php bloginfo('url'); ?>/" method="get">
<?php
$select = wp_dropdown_categories('show_option_none=Select category&show_count=1&orderby=name&echo=0');
$select = preg_replace("#<select([^>]*)>#", "<select$1 onchange='return this.form.submit()'>", $select);
echo $select;
?>
<noscript><input type="submit" value="View" /></noscript>
</form>
</li>
历史记录
- 始见于WordPress 2.1.0版本
源文件
wp_dropdown_categories()位于 wp-includes/category-template.php
分类:中文手册