Walker_Comment::display_element( WP_Comment $element, array $children_elements, int $max_depth, int $depth, array $args, string $output )

Traverses elements to create list from elements.


This function is designed to enhance Walker::display_element() to display children of higher nesting levels than selected inline on the highest depth level displayed. This prevents them being orphaned at the end of the comment list.

Example: max_depth = 2, with 5 levels of nested content.
1 1.1 1.1.1 1.1.2 2 2.2

See also


Comment data object.
List of elements to continue traversing. Passed by reference.
Max depth to traverse.
Depth of the current element.
An array of arguments.
Used to append additional content. Passed by reference.


public function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) {
	if ( ! $element ) {

	$id_field = $this->db_fields['id'];
	$id       = $element->$id_field;

	parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );

	 * If at the max depth, and the current element still has children, loop over those
	 * and display them at this level. This is to prevent them being orphaned to the end
	 * of the list.
	if ( $max_depth <= $depth + 1 && isset( $children_elements[ $id ] ) ) {
		foreach ( $children_elements[ $id ] as $child ) {
			$this->display_element( $child, $children_elements, $max_depth, $depth, $args, $output );

		unset( $children_elements[ $id ] );



User Contributed Notes

You must log in before being able to contribute a note or feedback.