[ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Taxonomy API: Walker_CategoryDropdown class 4 * 5 * @package WordPress 6 * @subpackage Template 7 * @since 4.4.0 8 */ 9 10 /** 11 * Core class used to create an HTML dropdown list of Categories. 12 * 13 * @since 2.1.0 14 * 15 * @see Walker 16 */ 17 class Walker_CategoryDropdown extends Walker { 18 19 /** 20 * What the class handles. 21 * 22 * @since 2.1.0 23 * @var string 24 * 25 * @see Walker::$tree_type 26 */ 27 public $tree_type = 'category'; 28 29 /** 30 * Database fields to use. 31 * 32 * @since 2.1.0 33 * @todo Decouple this 34 * @var string[] 35 * 36 * @see Walker::$db_fields 37 */ 38 public $db_fields = array( 39 'parent' => 'parent', 40 'id' => 'term_id', 41 ); 42 43 /** 44 * Starts the element output. 45 * 46 * @since 2.1.0 47 * @since 5.9.0 Renamed `$category` to `$data_object` and `$id` to `$current_object_id` 48 * to match parent class for PHP 8 named parameter support. 49 * 50 * @see Walker::start_el() 51 * 52 * @param string $output Used to append additional content (passed by reference). 53 * @param WP_Term $data_object Category data object. 54 * @param int $depth Depth of category. Used for padding. 55 * @param array $args Uses 'selected', 'show_count', and 'value_field' keys, if they exist. 56 * See wp_dropdown_categories(). 57 * @param int $current_object_id Optional. ID of the current category. Default 0. 58 */ 59 public function start_el( &$output, $data_object, $depth = 0, $args = array(), $current_object_id = 0 ) { 60 // Restores the more descriptive, specific name for use within this method. 61 $category = $data_object; 62 63 $pad = str_repeat( ' ', $depth * 3 ); 64 65 /** This filter is documented in wp-includes/category-template.php */ 66 $cat_name = apply_filters( 'list_cats', $category->name, $category ); 67 68 if ( isset( $args['value_field'] ) && isset( $category->{$args['value_field']} ) ) { 69 $value_field = $args['value_field']; 70 } else { 71 $value_field = 'term_id'; 72 } 73 74 $output .= "\t<option class=\"level-$depth\" value=\"" . esc_attr( $category->{$value_field} ) . '"'; 75 76 // Type-juggling causes false matches, so we force everything to a string. 77 if ( (string) $category->{$value_field} === (string) $args['selected'] ) { 78 $output .= ' selected="selected"'; 79 } 80 $output .= '>'; 81 $output .= $pad . $cat_name; 82 if ( $args['show_count'] ) { 83 $output .= ' (' . number_format_i18n( $category->count ) . ')'; 84 } 85 $output .= "</option>\n"; 86 } 87 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated : Sun Dec 22 08:20:01 2024 | Cross-referenced by PHPXref |