wp_dropdown_categories()
wp_dropdown_categories( array|string $args = ” ) 显示或检索类…
wp_dropdown_categories( array|string $args = ” )
显示或检索类别的HTML下拉列表。
Display or retrieve the HTML dropdown list of categories.
目录锚点:#说明#源码#笔记
说明(Description)
“hierarchy”参数(默认情况下是禁用的)将重写深度参数,除非它为true。当参数为false时,它将显示所有类别。当它被启用时,它将使用“depth”参数中的值。
源码(Source)
/** * Display or retrieve the HTML dropdown list of categories. * * The 'hierarchical' argument, which is disabled by default, will override the * depth argument, unless it is true. When the argument is false, it will * display all of the categories. When it is enabled it will use the value in * the 'depth' argument. * * @since 2.1.0 * @since 4.2.0 Introduced the `value_field` argument. * * @param string|array $args { * Optional. Array or string of arguments to generate a categories drop-down element. * * @type string $show_option_all Text to display for showing all categories. Default empty. * @type string $show_option_none Text to display for showing no categories. Default empty. * @type string $option_none_value Value to use when no category is selected. Default empty. * @type string $orderby Which column to use for ordering categories. See get_terms() for a list * of accepted values. Default 'id' (term_id). * @type string $order Whether to order terms in ascending or descending order. Accepts 'ASC' * or 'DESC'. Default 'ASC'. * @type bool $pad_counts See get_terms() for an argument description. Default false. * @type bool|int $show_count Whether to include post counts. Accepts 0, 1, or their bool equivalents. * Default 0. * @type bool|int $hide_empty Whether to hide categories that don't have any posts. Accepts 0, 1, or * their bool equivalents. Default 1. * @type int $child_of Term ID to retrieve child terms of. See get_terms(). Default 0. * @type array|string $exclude Array or comma/space-separated string of term ids to exclude. * If `$include` is non-empty, `$exclude` is ignored. Default empty array. * @type bool|int $echo Whether to echo or return the generated markup. Accepts 0, 1, or their * bool equivalents. Default 1. * @type bool|int $hierarchical Whether to traverse the taxonomy hierarchy. Accepts 0, 1, or their bool * equivalents. Default 0. * @type int $depth Maximum depth. Default 0. * @type int $tab_index Tab index for the select element. Default 0 (no tabindex). * @type string $name Value for the 'name' attribute of the select element. Default 'cat'. * @type string $id Value for the 'id' attribute of the select element. Defaults to the value * of `$name`. * @type string $class Value for the 'class' attribute of the select element. Default 'postform'. * @type int|string $selected Value of the option that should be selected. Default 0. * @type string $value_field Term field that should be used to populate the 'value' attribute * of the option elements. Accepts any valid term field: 'term_id', 'name', * 'slug', 'term_group', 'term_taxonomy_id', 'taxonomy', 'description', * 'parent', 'count'. Default 'term_id'. * @type string $taxonomy Name of the category to retrieve. Default 'category'. * @type bool $hide_if_empty True to skip generating markup if no categories are found. * Default false (create select element even if no categories are found). * } * @return string HTML content only if 'echo' argument is 0. */ function wp_dropdown_categories( $args = '' ) { $defaults = 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, 'option_none_value' => -1, 'value_field' => 'term_id', ); $defaults['selected'] = ( is_category() ) ? get_query_var( 'cat' ) : 0; // Back compat. if ( isset( $args['type'] ) && 'link' == $args['type'] ) { _deprecated_argument( __FUNCTION__, '3.0', '' ); $args['taxonomy'] = 'link_category'; } $r = wp_parse_args( $args, $defaults ); $option_none_value = $r['option_none_value']; if ( ! isset( $r['pad_counts'] ) && $r['show_count'] && $r['hierarchical'] ) { $r['pad_counts'] = true; } $tab_index = $r['tab_index']; $tab_index_attribute = ''; if ( (int) $tab_index > 0 ) { $tab_index_attribute = " tabindex="$tab_index""; } // Avoid clashes with the 'name' param of get_terms(). $get_terms_args = $r; unset( $get_terms_args['name'] ); $categories = get_terms( $r['taxonomy'], $get_terms_args ); $name = esc_attr( $r['name'] ); $class = esc_attr( $r['class'] ); $id = $r['id'] ? esc_attr( $r['id'] ) : $name; if ( ! $r['hide_if_empty'] || ! empty( $categories ) ) { $output = " "; } else { $output = ''; } if ( empty( $categories ) && ! $r['hide_if_empty'] && ! empty( $r['show_option_none'] ) ) { /** * Filter a taxonomy drop-down display element. * * A variety of taxonomy drop-down display elements can be modified * just prior to display via this filter. Filterable arguments include * 'show_option_none', 'show_option_all', and various forms of the * term name. * * @since 1.2.0 * * @see wp_dropdown_categories() * * @param string $element Taxonomy element to list. */ $show_option_none = apply_filters( 'list_cats', $r['show_option_none'] ); $output .= " $show_option_none "; } if ( ! empty( $categories ) ) { if ( $r['show_option_all'] ) { /** This filter is documented in wp-includes/category-template.php */ $show_option_all = apply_filters( 'list_cats', $r['show_option_all'] ); $selected = ( '0' === strval($r['selected']) ) ? " selected='selected'" : ''; $output .= " $show_option_all "; } if ( $r['show_option_none'] ) { /** This filter is documented in wp-includes/category-template.php */ $show_option_none = apply_filters( 'list_cats', $r['show_option_none'] ); $selected = selected( $option_none_value, $r['selected'], false ); $output .= " $show_option_none "; } if ( $r['hierarchical'] ) { $depth = $r['depth']; // Walk the full depth. } else { $depth = -1; // Flat. } $output .= walk_category_dropdown_tree( $categories, $depth, $r ); } if ( ! $r['hide_if_empty'] || ! empty( $categories ) ) { $output .= " "; } /** * Filter the taxonomy drop-down output. * * @since 2.1.0 * * @param string $output HTML output. * @param array $r Arguments used to build the drop-down. */ $output = apply_filters( 'wp_dropdown_cats', $output, $r ); if ( $r['echo'] ) { echo $output; } return $output; }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
4.6.0 | wp-includes/category-template.php | 13 | 14 |
笔记(Notes)
在本例中,使用echo参数(echo=0)。一个简单的preg_replace插入JavaScript代码。它甚至可以不使用JavaScript(submit按钮由noscript标记包装)。
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!