From 0cc68cfce263ab9e3ae0be85a61f67f42f980814 Mon Sep 17 00:00:00 2001 From: Jorge Costa Date: Wed, 4 Mar 2026 12:56:32 +0000 Subject: [PATCH 1/2] Connectors: Change URL to options-connectors.php Changes the Connectors screen URL from a query parameter page to a direct file, following the Settings menu naming convention (options-general.php, options-writing.php, etc.). - Add src/wp-admin/options-connectors.php direct admin file - Add submenu entry in menu.php at position 1 - Update script_module_data filter to options-connectors-wp-admin Props jeremyfelt, flavor13. See #64730. --- package.json | 2 +- src/wp-admin/menu.php | 1 + src/wp-admin/options-connectors.php | 40 +++++++++++++++++++++++++++++ src/wp-includes/connectors.php | 24 +---------------- 4 files changed, 43 insertions(+), 24 deletions(-) create mode 100644 src/wp-admin/options-connectors.php diff --git a/package.json b/package.json index 87f8014988268..d5d345bdfbb78 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "url": "https://develop.svn.wordpress.org/trunk" }, "gutenberg": { - "ref": "022d8dd3d461f91b15c1f0410649d3ebb027207f" + "ref": "95ecd95bc36c3e794be28250c10f4247761905c8" }, "engines": { "node": ">=20.10.0", diff --git a/src/wp-admin/menu.php b/src/wp-admin/menu.php index e544175d153b4..dc8c4271e9aad 100644 --- a/src/wp-admin/menu.php +++ b/src/wp-admin/menu.php @@ -404,6 +404,7 @@ function _add_plugin_file_editor_to_tools() { $menu[80] = array( __( 'Settings' ), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' ); $submenu['options-general.php'][10] = array( _x( 'General', 'settings screen' ), 'manage_options', 'options-general.php' ); + $submenu['options-general.php'][12] = array( __( 'Connectors' ), 'manage_options', 'options-connectors.php' ); $submenu['options-general.php'][15] = array( __( 'Writing' ), 'manage_options', 'options-writing.php' ); $submenu['options-general.php'][20] = array( __( 'Reading' ), 'manage_options', 'options-reading.php' ); $submenu['options-general.php'][25] = array( __( 'Discussion' ), 'manage_options', 'options-discussion.php' ); diff --git a/src/wp-admin/options-connectors.php b/src/wp-admin/options-connectors.php new file mode 100644 index 0000000000000..30a42e575ac0c --- /dev/null +++ b/src/wp-admin/options-connectors.php @@ -0,0 +1,40 @@ +' . __( 'You need a higher level of permission.' ) . '' . + '

' . __( 'Sorry, you are not allowed to manage connectors on this site.' ) . '

', + 403 + ); +} + +if ( ! class_exists( '\WordPress\AiClient\AiClient' ) || ! function_exists( 'wp_options_connectors_wp_admin_render_page' ) ) { + wp_die( + '

' . __( 'Connectors is not available.' ) . '

' . + '

' . __( 'The Connectors page requires build files. Please run npm install to build the necessary files.' ) . '

', + 503 + ); +} + +// Set the page title. +$title = __( 'Connectors' ); + +// Set parent file for menu highlighting. +$parent_file = 'options-general.php'; + +require_once ABSPATH . 'wp-admin/admin-header.php'; + +// Render the Connectors page. +wp_options_connectors_wp_admin_render_page(); + +require_once ABSPATH . 'wp-admin/admin-footer.php'; diff --git a/src/wp-includes/connectors.php b/src/wp-includes/connectors.php index 8ca2369002b15..0da60353705c2 100644 --- a/src/wp-includes/connectors.php +++ b/src/wp-includes/connectors.php @@ -10,28 +10,6 @@ use WordPress\AiClient\AiClient; use WordPress\AiClient\Providers\Http\DTO\ApiKeyRequestAuthentication; -/** - * Registers the Connectors menu item under Settings. - * - * @since 7.0.0 - * @access private - */ -function _wp_connectors_add_settings_menu_item(): void { - if ( ! class_exists( '\WordPress\AiClient\AiClient' ) || ! function_exists( 'wp_connectors_wp_admin_render_page' ) ) { - return; - } - - add_submenu_page( - 'options-general.php', - __( 'Connectors' ), - __( 'Connectors' ), - 'manage_options', - 'connectors-wp-admin', - 'wp_connectors_wp_admin_render_page', - 1 - ); -} -add_action( 'admin_menu', '_wp_connectors_add_settings_menu_item' ); /** * Masks an API key, showing only the last 4 characters. @@ -415,4 +393,4 @@ function _wp_connectors_get_connector_script_module_data( array $data ): array { $data['connectors'] = $connectors; return $data; } -add_filter( 'script_module_data_connectors-wp-admin', '_wp_connectors_get_connector_script_module_data' ); +add_filter( 'script_module_data_options-connectors-wp-admin', '_wp_connectors_get_connector_script_module_data' ); From 8bd00b8265689ac209f4905134d6f1561f676b2c Mon Sep 17 00:00:00 2001 From: Jorge Costa Date: Wed, 4 Mar 2026 15:13:22 +0000 Subject: [PATCH 2/2] update ref --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d5d345bdfbb78..d89722e83eacb 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "url": "https://develop.svn.wordpress.org/trunk" }, "gutenberg": { - "ref": "95ecd95bc36c3e794be28250c10f4247761905c8" + "ref": "dac03aacc29b71c1813366949a5bfc5afdac68eb" }, "engines": { "node": ">=20.10.0",