PluginProbe
Gutenberg / 8.6.1
Gutenberg v8.6.1
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / gutenberg.php

gutenberg.php in Gutenberg 8.6.1, at gutenberg.php

185 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Gutenberg
4 * Plugin URI: https://github.com/WordPress/gutenberg
5 * Description: Printing since 1440. This is the development plugin for the new block editor in core.
6 * Requires at least: 5.3
7 * Requires PHP: 5.6
8 * Version: 8.6.1
9 * Author: Gutenberg Team
10 * Text Domain: gutenberg
11 *
12 * @package gutenberg
13 */
14
15 ### BEGIN AUTO-GENERATED DEFINES
16 define( 'GUTENBERG_VERSION', '8.6.1' );
17 define( 'GUTENBERG_GIT_COMMIT', 'a0ba0a4f024a134fac03d814e12598fc3536936b' );
18 ### END AUTO-GENERATED DEFINES
19
20 gutenberg_pre_init();
21
22 /**
23 * Gutenberg's Menu.
24 *
25 * Adds a new wp-admin menu page for the Gutenberg editor.
26 *
27 * @since 0.1.0
28 */
29 function gutenberg_menu() {
30 global $submenu;
31
32 add_menu_page(
33 'Gutenberg',
34 'Gutenberg',
35 'edit_posts',
36 'gutenberg',
37 '',
38 'dashicons-edit'
39 );
40
41 add_submenu_page(
42 'gutenberg',
43 __( 'Demo', 'gutenberg' ),
44 __( 'Demo', 'gutenberg' ),
45 'edit_posts',
46 'gutenberg'
47 );
48
49 if ( get_option( 'gutenberg-experiments' ) ) {
50 if ( array_key_exists( 'gutenberg-widget-experiments', get_option( 'gutenberg-experiments' ) ) ) {
51 add_submenu_page(
52 'gutenberg',
53 __( 'Widgets (beta)', 'gutenberg' ),
54 __( 'Widgets (beta)', 'gutenberg' ),
55 'edit_theme_options',
56 'gutenberg-widgets',
57 'the_gutenberg_widgets'
58 );
59 }
60 if ( array_key_exists( 'gutenberg-navigation', get_option( 'gutenberg-experiments' ) ) ) {
61 add_submenu_page(
62 'gutenberg',
63 __( 'Navigation (beta)', 'gutenberg' ),
64 __( 'Navigation (beta)', 'gutenberg' ),
65 'edit_theme_options',
66 'gutenberg-navigation',
67 'gutenberg_navigation_page'
68 );
69 }
70 if ( array_key_exists( 'gutenberg-full-site-editing', get_option( 'gutenberg-experiments' ) ) ) {
71 add_menu_page(
72 __( 'Site Editor (beta)', 'gutenberg' ),
73 __( 'Site Editor (beta)', 'gutenberg' ),
74 'edit_theme_options',
75 'gutenberg-edit-site',
76 'gutenberg_edit_site_page',
77 'dashicons-layout'
78 );
79 }
80 }
81
82 if ( current_user_can( 'edit_posts' ) ) {
83 $submenu['gutenberg'][] = array(
84 __( 'Support', 'gutenberg' ),
85 'edit_posts',
86 __( 'https://wordpress.org/support/plugin/gutenberg', 'gutenberg' ),
87 );
88
89 $submenu['gutenberg'][] = array(
90 __( 'Documentation', 'gutenberg' ),
91 'edit_posts',
92 'https://developer.wordpress.org/block-editor/',
93 );
94 }
95
96 add_submenu_page(
97 'gutenberg',
98 __( 'Experiments Settings', 'gutenberg' ),
99 __( 'Experiments', 'gutenberg' ),
100 'edit_posts',
101 'gutenberg-experiments',
102 'the_gutenberg_experiments'
103 );
104 }
105 add_action( 'admin_menu', 'gutenberg_menu' );
106
107 /**
108 * Display a version notice and deactivate the Gutenberg plugin.
109 *
110 * @since 0.1.0
111 */
112 function gutenberg_wordpress_version_notice() {
113 echo '<div class="error"><p>';
114 /* translators: %s: Minimum required version */
115 printf( __( 'Gutenberg requires WordPress %s or later to function properly. Please upgrade WordPress before activating Gutenberg.', 'gutenberg' ), '5.3.0' );
116 echo '</p></div>';
117
118 deactivate_plugins( array( 'gutenberg/gutenberg.php' ) );
119 }
120
121 /**
122 * Display a build notice.
123 *
124 * @since 0.1.0
125 */
126 function gutenberg_build_files_notice() {
127 echo '<div class="error"><p>';
128 _e( 'Gutenberg development mode requires files to be built. Run <code>npm install</code> to install dependencies, <code>npm run build</code> to build the files or <code>npm run dev</code> to build the files and watch for changes. Read the <a href="https://github.com/WordPress/gutenberg/blob/master/docs/contributors/getting-started.md">contributing</a> file for more information.', 'gutenberg' );
129 echo '</p></div>';
130 }
131
132 /**
133 * Verify that we can initialize the Gutenberg editor , then load it.
134 *
135 * @since 1.5.0
136 */
137 function gutenberg_pre_init() {
138 global $wp_version;
139 if ( defined( 'GUTENBERG_DEVELOPMENT_MODE' ) && GUTENBERG_DEVELOPMENT_MODE && ! file_exists( dirname( __FILE__ ) . '/build/blocks' ) ) {
140 add_action( 'admin_notices', 'gutenberg_build_files_notice' );
141 return;
142 }
143
144 // Get unmodified $wp_version.
145 include ABSPATH . WPINC . '/version.php';
146
147 // Strip '-src' from the version string. Messes up version_compare().
148 $version = str_replace( '-src', '', $wp_version );
149
150 if ( version_compare( $version, '5.3.0', '<' ) ) {
151 add_action( 'admin_notices', 'gutenberg_wordpress_version_notice' );
152 return;
153 }
154
155 require_once dirname( __FILE__ ) . '/lib/load.php';
156 }
157
158 /**
159 * Outputs a WP REST API nonce.
160 */
161 function gutenberg_rest_nonce() {
162 exit( wp_create_nonce( 'wp_rest' ) );
163 }
164 add_action( 'wp_ajax_gutenberg_rest_nonce', 'gutenberg_rest_nonce' );
165
166
167 /**
168 * Exposes the site icon url to the Gutenberg editor through the WordPress REST
169 * API. The site icon url should instead be fetched from the wp/v2/settings
170 * endpoint when https://github.com/WordPress/gutenberg/pull/19967 is complete.
171 *
172 * @since 8.2.1
173 *
174 * @param WP_REST_Response $response Response data served by the WordPress REST index endpoint.
175 * @return WP_REST_Response
176 */
177 function register_site_icon_url( $response ) {
178 $data = $response->data;
179 $data['site_icon_url'] = get_site_icon_url();
180 $response->set_data( $data );
181 return $response;
182 }
183
184 add_filter( 'rest_index', 'register_site_icon_url' );
185