Starts the element output.
Description
See also
Parameters
$output
stringrequired- Used to append additional content (passed by reference).
$data_object
WP_Termrequired- Category data object.
$depth
intrequired- Depth of category. Used for padding.
$args
arrayoptional- Uses
'selected'
,'show_count'
, and'value_field'
keys, if they exist.
See wp_dropdown_categories() .More Arguments from wp_dropdown_categories( … $args )
Array or string of arguments. See WP_Term_Query::__construct() for information on accepted arguments.Default:
array()
$current_object_id
intoptional- ID of the current category. Default 0.
Source
public function start_el( &$output, $data_object, $depth = 0, $args = array(), $current_object_id = 0 ) {
// Restores the more descriptive, specific name for use within this method.
$category = $data_object;
$pad = str_repeat( ' ', $depth * 3 );
/** This filter is documented in wp-includes/category-template.php */
$cat_name = apply_filters( 'list_cats', $category->name, $category );
if ( isset( $args['value_field'] ) && isset( $category->{$args['value_field']} ) ) {
$value_field = $args['value_field'];
} else {
$value_field = 'term_id';
}
$output .= "\t<option class=\"level-$depth\" value=\"" . esc_attr( $category->{$value_field} ) . '"';
// Type-juggling causes false matches, so we force everything to a string.
if ( (string) $category->{$value_field} === (string) $args['selected'] ) {
$output .= ' selected="selected"';
}
$output .= '>';
$output .= $pad . $cat_name;
if ( $args['show_count'] ) {
$output .= ' (' . number_format_i18n( $category->count ) . ')';
}
$output .= "</option>\n";
}
Hooks
- apply_filters( ‘list_cats’,
string $element ,WP_Term|null $category ) Filters a taxonomy drop-down display element.
User Contributed Notes
You must log in before being able to contribute a note or feedback.