WordPress 开发 wp_dropdown_categories 下拉式框显示所分类目录标签函数

WordPress的wp_dropdown_categories()函数可以让我们以下拉式框的方式显示所分类目录标签,下面来看看这个标签函数的用法。

说明

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

用法

<?php?wp_dropdown_categories(?$args?);??>

默认用法

?<?php?$args?=?array(
????'show_option_all'????=>?,
????'show_option_none'???=>?,
????'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?);??>

默认情况下的显示状态:

  • 升序排列分类目录ID
  • 不显示最新更新
  • 不显示分类目录下的文章总数
  • 不显示“空”分类
  • 不排除任何分类
  • 显示(回应)分类目录
  • 选项框中不选中任何分类
  • 不以分层结构显示分类目录
  • 为列表命名为“cat”
  • 将列表赋值给’postform’类
  • 无层数限制

参数

show_option_all

(字符串)生成下拉式选项框的HTML,从而允许你选定所有分类目录。

show_option_none

(字符串)生成下拉式选项框的HTML,从而允许你不选定任何分类目录。

orderby

(字符串)按某种标准为分类目录排序。有效值包括:

  • ‘ID’ ——默认值
  • ‘name’

order

(字符串)为分类目录排序(升序或降序)有效值包括:

  • ‘ASC’(升序) ——默认值
  • ‘DESC’(降序)

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显示一个没有提交按钮的下拉式选项框

下面这段代码使用了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">
<div>
<?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><div><input type="submit" value="View" /></div></noscript>
</div></form>
</li>

历史记录

  • 始见于WordPress 2.1.0版本

源文件

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

链接到文章: https://ixvps.com/44267.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注