WP_REST_Menus_Controller::handle_auto_add( int $menu_id, WP_REST_Request $request ): bool

In this article

Updates the menu’s auto add from a REST request.

Parameters

$menu_idintrequired
The menu id to update.
$requestWP_REST_Requestrequired
Full details about the request.

Return

bool True if the auto add setting was successfully updated.

Source

protected function handle_auto_add( $menu_id, $request ) {
	if ( ! isset( $request['auto_add'] ) ) {
		return true;
	}

	$nav_menu_option = (array) get_option( 'nav_menu_options', array( 'auto_add' => array() ) );

	if ( ! isset( $nav_menu_option['auto_add'] ) ) {
		$nav_menu_option['auto_add'] = array();
	}

	$auto_add = $request['auto_add'];

	$i = array_search( $menu_id, $nav_menu_option['auto_add'], true );

	if ( $auto_add && false === $i ) {
		$nav_menu_option['auto_add'][] = $menu_id;
	} elseif ( ! $auto_add && false !== $i ) {
		array_splice( $nav_menu_option['auto_add'], $i, 1 );
	}

	$update = update_option( 'nav_menu_options', $nav_menu_option );

	/** This action is documented in wp-includes/nav-menu.php */
	do_action( 'wp_update_nav_menu', $menu_id );

	return $update;
}

Hooks

do_action( ‘wp_update_nav_menu’, int $menu_id, array $menu_data )

Fires after a navigation menu has been successfully updated.

Changelog

VersionDescription
5.9.0Introduced.

User Contributed Notes

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