diff --git a/wp-includes/class-wp-walker.php b/wp-includes/class-wp-walker.php index c5e3b5129b..1ef489949a 100644 --- a/wp-includes/class-wp-walker.php +++ b/wp-includes/class-wp-walker.php @@ -39,6 +39,15 @@ class Walker { */ protected $max_pages = 1; + /** + * Wether the current element has children or not. To be used in start_el() + * + * @since 4.0.0 + * @var bool + * @access protected + */ + protected $has_children; + /** * Make private properties readable for backwards compatibility * @@ -172,15 +181,17 @@ class Walker { return; $id_field = $this->db_fields['id']; + $id = $element->$id_field; //display this element - if ( isset( $args[0] ) && is_array( $args[0] ) ) - $args[0]['has_children'] = ! empty( $children_elements[$element->$id_field] ); + $this->has_children = ! empty( $children_elements[ $id ] ); + if ( isset( $args[0] ) && is_array( $args[0] ) ) { + $args[0]['has_children'] = $this->has_children; // Backwards compatibility. + } + $cb_args = array_merge( array(&$output, $element, $depth), $args); call_user_func_array(array($this, 'start_el'), $cb_args); - $id = $element->$id_field; - // descend only when the depth is right and there are childrens for this element if ( ($max_depth == 0 || $max_depth > $depth+1 ) && isset( $children_elements[$id]) ) { diff --git a/wp-includes/comment-template.php b/wp-includes/comment-template.php index b905be0ec4..b3b1e2e781 100644 --- a/wp-includes/comment-template.php +++ b/wp-includes/comment-template.php @@ -1784,7 +1784,7 @@ class Walker_Comment extends Walker { $add_below = 'div-comment'; } ?> - < id="comment-"> + < has_children ? 'parent' : '' ); ?> id="comment-">