Deletes a single nav menu item.
$requestWP_REST_Requestrequired
public function delete_item( $request ) {
$menu_item = $this->get_nav_menu_item( $request['id'] );
if ( is_wp_error( $menu_item ) ) {
return $menu_item;
}
// We don't support trashing for menu items.
if ( ! $request['force'] ) {
/* translators: %s: force=true */
return new WP_Error( 'rest_trash_not_supported', sprintf( __( "Menu items do not support trashing. Set '%s' to delete." ), 'force=true' ), array( 'status' => 501 ) );
}
$previous = $this->prepare_item_for_response( get_post( $request['id'] ), $request );
$result = wp_delete_post( $request['id'], true );
if ( ! $result ) {
return new WP_Error( 'rest_cannot_delete', __( 'The post cannot be deleted.' ), array( 'status' => 500 ) );
}
$response = new WP_REST_Response();
$response->set_data(
array(
'deleted' => true,
'previous' => $previous->get_data(),
)
);
/**
* Fires immediately after a single menu item is deleted via the REST API.
*
* @since 5.9.0
*
* @param object $nav_menu_item Inserted or updated menu item object.
* @param WP_REST_Response $response The response data.
* @param WP_REST_Request $request Request object.
*/
do_action( 'rest_delete_nav_menu_item', $menu_item, $response, $request );
return $response;
}
Fires immediately after a single menu item is deleted via the REST API.
| Version | Description |
|---|---|
| 5.9.0 | Introduced. |
© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_rest_menu_items_controller/delete_item