模板标签-wp_dropdown_categories()

0条评论

说明

该标签在一个没有提交按钮的选择框(如下拉式选框)中展示分类目录列表。

用法

<?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