| @@ -24,11 +24,11 @@ | ||
| 24 | 24 | 'label' => __( 'Experimental blocks', 'gutenberg' ), |
| 25 | 25 | 'description' => __( 'Enables experimental blocks on a rolling basis as they are developed. (Warning: these blocks may have significant changes during development that cause validation errors and display issues.)', 'gutenberg' ), |
| 26 | 26 | ), |
| 27 | 27 | array( |
| 28 | - 'id' => 'gutenberg-form-blocks', | |
| 29 | - 'label' => __( 'Form and input blocks', 'gutenberg' ), | |
| 30 | - 'description' => __( 'Enables new blocks to allow building forms. You are likely to experience UX issues that are being addressed.', 'gutenberg' ), | |
| 28 | + 'id' => 'gutenberg-global-styles-inheritance-ui', | |
| 29 | + 'label' => __( 'Global Styles inheritance in the block inspector', 'gutenberg' ), | |
| 30 | + 'description' => __( 'Shows the value a block inherits from Global Styles in the block inspector when nothing is set on the block itself, and adds a control to clear a value you set back to the inherited one.', 'gutenberg' ), | |
| 31 | 31 | ), |
| 32 | 32 | array( |
| 33 | 33 | 'id' => 'gutenberg-grid-interactivity', |
| 34 | 34 | 'label' => __( 'Grid interactivity', 'gutenberg' ), |
| @@ -42,9 +42,9 @@ | ||
| 42 | 42 | 'items' => array( |
| 43 | 43 | array( |
| 44 | 44 | 'id' => 'gutenberg-media-editor', |
| 45 | 45 | 'label' => __( 'Media Editor (Route)', 'gutenberg' ), |
| 46 | - 'description' => __( 'Enables a dedicated route-based media editor screen for editing media items (metadata and content).', 'gutenberg' ), | |
| 46 | + 'description' => __( 'Replaces the core Edit Media screen with a dedicated route-based media editor for editing media items (metadata and content).', 'gutenberg' ), | |
| 47 | 47 | ), |
| 48 | 48 | array( |
| 49 | 49 | 'id' => 'gutenberg-dataviews-media-modal', |
| 50 | 50 | 'label' => __( 'Media Upload Modal', 'gutenberg' ), |
| @@ -56,13 +56,8 @@ | ||
| 56 | 56 | 'slug' => 'data-views', |
| 57 | 57 | 'label' => _x( 'Data Views', 'experiments group name', 'gutenberg' ), |
| 58 | 58 | 'items' => array( |
| 59 | 59 | array( |
| 60 | - 'id' => 'gutenberg-content-only-inspector-fields', | |
| 61 | - 'label' => __( 'Block fields: Show dataform driven inspector fields on blocks that support them', 'gutenberg' ), | |
| 62 | - 'description' => __( 'Enables editable block inspector fields that are generated using a dataform.', 'gutenberg' ), | |
| 63 | - ), | |
| 64 | - array( | |
| 65 | 60 | 'id' => 'gutenberg-dataform-inspector', |
| 66 | 61 | 'label' => __( 'Editor Inspector: Use DataForm', 'gutenberg' ), |
| 67 | 62 | 'description' => __( 'Replaces the bespoke editor inspector panels with a unified DataForm-based implementation for Pages and Posts, matching the QuickEdit experience.', 'gutenberg' ), |
| 68 | 63 | ), |
| @@ -79,16 +74,15 @@ | ||
| 79 | 74 | ), |
| 80 | 75 | ), |
| 81 | 76 | ), |
| 82 | 77 | array( |
| 83 | - 'slug' => 'templates', | |
| 84 | - 'label' => _x( 'Templates', 'experiments group name', 'gutenberg' ), | |
| 78 | + 'slug' => 'real-time-collaboration', | |
| 79 | + 'label' => _x( 'Real-Time Collaboration', 'experiments group name', 'gutenberg' ), | |
| 85 | 80 | 'items' => array( |
| 86 | 81 | array( |
| 87 | - 'id' => 'active_templates', | |
| 88 | - 'label' => __( 'Template Activation', 'gutenberg' ), | |
| 89 | - 'description' => __( 'Allows multiple templates of the same type to be created, of which one can be active at a time. (Warning: when you deactivate this experiment, it is best to delete all created templates except for the active ones.)', 'gutenberg' ), | |
| 90 | - 'separateOption' => true, | |
| 82 | + 'id' => 'gutenberg-real-time-collaboration', | |
| 83 | + 'label' => __( 'Enable real-time collaboration', 'gutenberg' ), | |
| 84 | + 'description' => __( 'Allows multiple people to edit the same post at the same time.', 'gutenberg' ), | |
| 91 | 85 | ), |
| 92 | 86 | ), |
| 93 | 87 | ), |
| 94 | 88 | array( |
| @@ -95,13 +89,8 @@ | ||
| 95 | 89 | 'slug' => 'other', |
| 96 | 90 | 'label' => _x( 'Other', 'experiments group name', 'gutenberg' ), |
| 97 | 91 | 'items' => array( |
| 98 | 92 | array( |
| 99 | - 'id' => 'gutenberg-color-randomizer', | |
| 100 | - 'label' => __( 'Color randomizer', 'gutenberg' ), | |
| 101 | - 'description' => __( 'Enables the Global Styles color randomizer in the Site Editor; a utility that lets you mix the current color palette pseudo-randomly.', 'gutenberg' ), | |
| 102 | - ), | |
| 103 | - array( | |
| 104 | 93 | 'id' => 'gutenberg-workflow-palette', |
| 105 | 94 | 'label' => __( 'Workflow Palette', 'gutenberg' ), |
| 106 | 95 | 'description' => __( 'Enables the Workflow Palette for running workflows composed of abilities, from a unified interface.', 'gutenberg' ), |
| 107 | 96 | ), |
| @@ -112,26 +101,16 @@ | ||
| 112 | 101 | ), |
| 113 | 102 | array( |
| 114 | 103 | 'id' => 'gutenberg-guidelines', |
| 115 | 104 | 'label' => __( 'Guidelines', 'gutenberg' ), |
| 116 | - 'description' => __( 'Enables guidelines feature for managing editorial voice and tone guidelines under Settings.', 'gutenberg' ), | |
| 105 | + 'description' => __( 'Enables the Guidelines page under Settings and the experimental knowledge storage (wp_knowledge).', 'gutenberg' ), | |
| 117 | 106 | ), |
| 118 | 107 | array( |
| 119 | - 'id' => 'gutenberg-content-types', | |
| 120 | - 'label' => __( 'Content types', 'gutenberg' ), | |
| 121 | - 'description' => __( 'Enables a UI for creating and managing custom taxonomies and custom post types under Settings.', 'gutenberg' ), | |
| 122 | - ), | |
| 123 | - array( | |
| 124 | 108 | 'id' => 'gutenberg-dashboard-widgets', |
| 125 | 109 | 'label' => __( 'New Dashboard experience', 'gutenberg' ), |
| 126 | 110 | 'description' => __( 'Enables a new dashboard experience with resizable, reorderable widgets that plugins can register and users can personalize.', 'gutenberg' ), |
| 127 | 111 | ), |
| 128 | 112 | array( |
| 129 | - 'id' => 'gutenberg-omnibar', | |
| 130 | - 'label' => __( 'Omnipresent Toolbar', 'gutenberg' ), | |
| 131 | - 'description' => __( 'Improves the toolbar as navigation layer, including showing the toolbar in the fullscreen Post and Site Editor.', 'gutenberg' ), | |
| 132 | - ), | |
| 133 | - array( | |
| 134 | 113 | 'id' => 'gutenberg-react-19', |
| 135 | 114 | 'label' => __( 'React 19', 'gutenberg' ), |
| 136 | 115 | 'description' => __( 'Registers React 19 as the bundled React version, replacing the default React 18 scripts.', 'gutenberg' ), |
| 137 | 116 | ), |
| @@ -150,16 +129,8 @@ | ||
| 150 | 129 | 'group' => $group['slug'], |
| 151 | 130 | 'group_label' => $group['label'], |
| 152 | 131 | ); |
| 153 | 132 | |
| 154 | - // Metadata-only entry: values for separateOption experiments live in | |
| 155 | - // their own option (e.g. `active_templates`). Surfaced here so the UI | |
| 156 | - // can render them from the settings schema. | |
| 157 | - if ( ! empty( $experiment['separateOption'] ) ) { | |
| 158 | - $property['separate_option'] = true; | |
| 159 | - $property['option_name'] = $experiment['id']; | |
| 160 | - } | |
| 161 | - | |
| 162 | 133 | $properties[ $experiment['id'] ] = $property; |
| 163 | 134 | } |
| 164 | 135 | } |
| 165 | 136 | |
| @@ -181,23 +152,8 @@ | ||
| 181 | 152 | |
| 182 | 153 | add_action( 'rest_api_init', 'gutenberg_initialize_experiments_settings' ); |
| 183 | 154 | |
| 184 | 155 | /** |
| 185 | - * Registers the Experiments submenu page under the Gutenberg menu. | |
| 186 | - */ | |
| 187 | -function gutenberg_experiments_menu() { | |
| 188 | - add_submenu_page( | |
| 189 | - 'gutenberg', | |
| 190 | - __( 'Experiments Settings', 'gutenberg' ), | |
| 191 | - __( 'Experiments', 'gutenberg' ), | |
| 192 | - 'manage_options', | |
| 193 | - 'experiments-wp-admin', | |
| 194 | - 'gutenberg_experiments_wp_admin_render_page' | |
| 195 | - ); | |
| 196 | -} | |
| 197 | -add_action( 'admin_menu', 'gutenberg_experiments_menu' ); | |
| 198 | - | |
| 199 | -/** | |
| 200 | 156 | * Allows the legacy `gutenberg-experiments` route. Without this, accessing |
| 201 | 157 | * `?page=gutenberg-experiments` results in an HTTP 403 error. |
| 202 | 158 | * |
| 203 | 159 | * Allowing the route is done by adding a wp-admin submenu page that won't be rendered. |
| @@ -211,10 +167,8 @@ | ||
| 211 | 167 | * Redirects the legacy `?page=gutenberg-experiments` URL to the new |
| 212 | 168 | * `?page=experiments-wp-admin` URL. |
| 213 | 169 | */ |
| 214 | 170 | function gutenberg_redirect_legacy_experiments_page() { |
| 215 | - wp_safe_redirect( admin_url( 'admin.php?page=experiments-wp-admin' ) ); | |
| 171 | + wp_safe_redirect( admin_url( 'options-general.php?page=experiments-wp-admin' ) ); | |
| 216 | 172 | exit; |
| 217 | 173 | } |
| 218 | 174 | add_action( 'load-admin_page_gutenberg-experiments', 'gutenberg_redirect_legacy_experiments_page' ); |
| 219 | -add_action( 'load-toplevel_page_gutenberg-experiments', 'gutenberg_redirect_legacy_experiments_page' ); | |
| 220 | -add_action( 'load-gutenberg_page_gutenberg-experiments', 'gutenberg_redirect_legacy_experiments_page' ); | |