WP_REST_Menu_Locations_Controller::prepare_links()protectedWP 5.9.0

Prepares links for the request.

Method of the class: WP_REST_Menu_Locations_Controller{}

No Hooks.

Return

Array. Links for the given menu location.

Usage

// protected - for code of main (parent) or child class
$result = $this->prepare_links( $location );
$location(stdClass) (required)
Menu location.

Changelog

Since 5.9.0 Introduced.

WP_REST_Menu_Locations_Controller::prepare_links() code WP 6.5.2

protected function prepare_links( $location ) {
	$base = sprintf( '%s/%s', $this->namespace, $this->rest_base );

	// Entity meta.
	$links = array(
		'self'       => array(
			'href' => rest_url( trailingslashit( $base ) . $location->name ),
		),
		'collection' => array(
			'href' => rest_url( $base ),
		),
	);

	$locations = get_nav_menu_locations();
	$menu      = isset( $locations[ $location->name ] ) ? $locations[ $location->name ] : 0;
	if ( $menu ) {
		$path = rest_get_route_for_term( $menu );
		if ( $path ) {
			$url = rest_url( $path );

			$links['https://api.w.org/menu'][] = array(
				'href'       => $url,
				'embeddable' => true,
			);
		}
	}

	return $links;
}