Title: wp_parse_widget_id
Published: July 20, 2021
Last modified: August 20, 2026

---

# wp_parse_widget_id( string $id ): array

## In this article

 * [Parameters](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#wp--skip-link--target)

Converts a widget ID into its id_base and number components.

## 󠀁[Parameters](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#parameters)󠁿

 `$id`stringrequired

Widget ID.

## 󠀁[Return](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#return)󠁿

 array Array containing a widget’s id_base and number components.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#source)󠁿

    ```php
    function wp_parse_widget_id( $id ) {
    	$parsed = array();

    	if ( preg_match( '/^(.+)-(\d+)$/', $id, $matches ) ) {
    		$parsed['id_base'] = $matches[1];
    		$parsed['number']  = (int) $matches[2];
    	} else {
    		// Likely an old single widget.
    		$parsed['id_base'] = $id;
    	}

    	return $parsed;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/widgets.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/widgets.php#L1932)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/widgets.php#L1932-L1944)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#related)󠁿

| Used by | Description | 
| [WP_REST_Widgets_Controller::prepare_item_for_response()](https://developer.wordpress.org/reference/classes/wp_rest_widgets_controller/prepare_item_for_response/)`wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php` |

Prepares the widget for the REST response.

  | 
| [WP_REST_Widgets_Controller::update_item()](https://developer.wordpress.org/reference/classes/wp_rest_widgets_controller/update_item/)`wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php` |

Updates an existing widget.

  | 
| [WP_REST_Widgets_Controller::delete_item()](https://developer.wordpress.org/reference/classes/wp_rest_widgets_controller/delete_item/)`wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php` |

Deletes a widget.

  | 
| [WP_REST_Widgets_Controller::save_widget()](https://developer.wordpress.org/reference/classes/wp_rest_widgets_controller/save_widget/)`wp-includes/rest-api/endpoints/class-wp-rest-widgets-controller.php` |

Saves the widget in the request object.

  | 
| [WP_REST_Widget_Types_Controller::get_widgets()](https://developer.wordpress.org/reference/classes/wp_rest_widget_types_controller/get_widgets/)`wp-includes/rest-api/endpoints/class-wp-rest-widget-types-controller.php` |

Normalize array of widgets.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/wp_parse_widget_id/?output_format=md#changelog)󠁿

| Version | Description | 
| [5.8.0](https://developer.wordpress.org/reference/since/5.8.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Fwp_parse_widget_id%2F)
before being able to contribute a note or feedback.