X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/03f2fa83c13c1b532284205fa7efcab9b8b2c41f..refs/tags/wordpress-4.5:/wp-includes/class-walker-category.php diff --git a/wp-includes/class-walker-category.php b/wp-includes/class-walker-category.php index da518c9e..bd17a14f 100644 --- a/wp-includes/class-walker-category.php +++ b/wp-includes/class-walker-category.php @@ -15,36 +15,42 @@ * @see Walker */ class Walker_Category extends Walker { + /** * What the class handles. * - * @see Walker::$tree_type * @since 2.1.0 + * @access public * @var string + * + * @see Walker::$tree_type */ public $tree_type = 'category'; /** * Database fields to use. * - * @see Walker::$db_fields * @since 2.1.0 - * @todo Decouple this + * @access public * @var array + * + * @see Walker::$db_fields + * @todo Decouple this */ public $db_fields = array ('parent' => 'parent', 'id' => 'term_id'); /** * Starts the list before the elements are added. * - * @see Walker::start_lvl() - * * @since 2.1.0 + * @access public * - * @param string $output Passed by reference. Used to append additional content. - * @param int $depth Depth of category. Used for tab indentation. - * @param array $args An array of arguments. Will only append content if style argument value is 'list'. - * @see wp_list_categories() + * @see Walker::start_lvl() + * + * @param string $output Used to append additional content. Passed by reference. + * @param int $depth Optional. Depth of category. Used for tab indentation. Default 0. + * @param array $args Optional. An array of arguments. Will only append content if style argument + * value is 'list'. See wp_list_categories(). Default empty array. */ public function start_lvl( &$output, $depth = 0, $args = array() ) { if ( 'list' != $args['style'] ) @@ -57,14 +63,15 @@ class Walker_Category extends Walker { /** * Ends the list of after the elements are added. * - * @see Walker::end_lvl() - * * @since 2.1.0 + * @access public * - * @param string $output Passed by reference. Used to append additional content. - * @param int $depth Depth of category. Used for tab indentation. - * @param array $args An array of arguments. Will only append content if style argument value is 'list'. - * @wsee wp_list_categories() + * @see Walker::end_lvl() + * + * @param string $output Used to append additional content. Passed by reference. + * @param int $depth Optional. Depth of category. Used for tab indentation. Default 0. + * @param array $args Optional. An array of arguments. Will only append content if style argument + * value is 'list'. See wp_list_categories(). Default empty array. */ public function end_lvl( &$output, $depth = 0, $args = array() ) { if ( 'list' != $args['style'] ) @@ -75,17 +82,18 @@ class Walker_Category extends Walker { } /** - * Start the element output. - * - * @see Walker::start_el() + * Starts the element output. * * @since 2.1.0 + * @access public + * + * @see Walker::start_el() * * @param string $output Passed by reference. Used to append additional content. * @param object $category Category data object. - * @param int $depth Depth of category in reference to parents. Default 0. - * @param array $args An array of arguments. @see wp_list_categories() - * @param int $id ID of the current category. + * @param int $depth Optional. Depth of category in reference to parents. Default 0. + * @param array $args Optional. An array of arguments. See wp_list_categories(). Default empty array. + * @param int $id Optional. ID of the current category. Default 0. */ public function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) { /** This filter is documented in wp-includes/category-template.php */ @@ -170,6 +178,13 @@ class Walker_Category extends Walker { } elseif ( $category->term_id == $_current_term->parent ) { $css_classes[] = 'current-cat-parent'; } + while ( $_current_term->parent ) { + if ( $category->term_id == $_current_term->parent ) { + $css_classes[] = 'current-cat-ancestor'; + break; + } + $_current_term = get_term( $_current_term->parent, $category->taxonomy ); + } } } @@ -199,14 +214,16 @@ class Walker_Category extends Walker { /** * Ends the element output, if needed. * - * @see Walker::end_el() - * * @since 2.1.0 + * @access public + * + * @see Walker::end_el() * * @param string $output Passed by reference. Used to append additional content. * @param object $page Not used. - * @param int $depth Depth of category. Not used. - * @param array $args An array of arguments. Only uses 'list' for whether should append to output. @see wp_list_categories() + * @param int $depth Optional. Depth of category. Not used. + * @param array $args Optional. An array of arguments. Only uses 'list' for whether should append + * to output. See wp_list_categories(). Default empty array. */ public function end_el( &$output, $page, $depth = 0, $args = array() ) { if ( 'list' != $args['style'] )