W3cubDocs

/WordPress

wp_find_hierarchy_loop( callable $callback, int $start, int $start_parent, array $callback_args = array() ): array

Finds hierarchy loops using a callback function that maps object IDs to parent IDs.

Parameters

$callbackcallablerequired
Function that accepts ( ID, $callback_args ) and outputs parent_ID.
$startintrequired
The ID to start the loop check at.
$start_parentintrequired
The parent_ID of $start to use instead of calling $callback( $start ).
Use null to always use $callback.
$callback_argsarrayoptional
Additional arguments to send to $callback.

Default:array()

Return

array IDs of all members of loop.

Source

function wp_find_hierarchy_loop( $callback, $start, $start_parent, $callback_args = array() ) {
	$override = is_null( $start_parent ) ? array() : array( $start => $start_parent );

	$arbitrary_loop_member = wp_find_hierarchy_loop_tortoise_hare( $callback, $start, $override, $callback_args );
	if ( ! $arbitrary_loop_member ) {
		return array();
	}

	return wp_find_hierarchy_loop_tortoise_hare( $callback, $arbitrary_loop_member, $override, $callback_args, true );
}

Changelog

Version Description
3.1.0 Introduced.

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_find_hierarchy_loop