PluginProbe
Gutenberg / 12.6.0
Gutenberg v12.6.0
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 / lib / init.php

init.php in Gutenberg 12.6.0, at lib/init.php

151 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Init hooks.
4 *
5 * @package gutenberg
6 */
7
8 /**
9 * Gutenberg's Menu.
10 *
11 * Adds a new wp-admin menu page for the Gutenberg editor.
12 *
13 * @since 0.1.0
14 */
15 function gutenberg_menu() {
16 add_menu_page(
17 'Gutenberg',
18 'Gutenberg',
19 'edit_posts',
20 'gutenberg',
21 '',
22 'dashicons-edit'
23 );
24
25 add_submenu_page(
26 'gutenberg',
27 __( 'Demo', 'gutenberg' ),
28 __( 'Demo', 'gutenberg' ),
29 'edit_posts',
30 'gutenberg'
31 );
32
33 if ( get_option( 'gutenberg-experiments' ) ) {
34 if ( array_key_exists( 'gutenberg-navigation', get_option( 'gutenberg-experiments' ) ) ) {
35 add_submenu_page(
36 'gutenberg',
37 __( 'Navigation (beta)', 'gutenberg' ),
38 __( 'Navigation (beta)', 'gutenberg' ),
39 'edit_theme_options',
40 'gutenberg-navigation',
41 'gutenberg_navigation_page'
42 );
43 }
44 }
45 if ( current_user_can( 'edit_posts' ) ) {
46 add_submenu_page(
47 'gutenberg',
48 __( 'Support', 'gutenberg' ),
49 __( 'Support', 'gutenberg' ),
50 'edit_posts',
51 __( 'https://wordpress.org/support/plugin/gutenberg/', 'gutenberg' )
52 );
53 add_submenu_page(
54 'gutenberg',
55 __( 'Documentation', 'gutenberg' ),
56 __( 'Documentation', 'gutenberg' ),
57 'edit_posts',
58 'https://developer.wordpress.org/block-editor/'
59 );
60 }
61
62 add_submenu_page(
63 'gutenberg',
64 __( 'Experiments Settings', 'gutenberg' ),
65 __( 'Experiments', 'gutenberg' ),
66 'edit_posts',
67 'gutenberg-experiments',
68 'the_gutenberg_experiments'
69 );
70 }
71 add_action( 'admin_menu', 'gutenberg_menu', 9 );
72
73 /**
74 * Site editor's Menu.
75 *
76 * Adds a new wp-admin menu item for the Site editor.
77 *
78 * @since 9.4.0
79 */
80 function gutenberg_site_editor_menu() {
81 if ( wp_is_block_theme() ) {
82 add_theme_page(
83 __( 'Editor (beta)', 'gutenberg' ),
84 sprintf(
85 /* translators: %s: "beta" label. */
86 __( 'Editor %s', 'gutenberg' ),
87 '<span class="awaiting-mod">' . __( 'beta', 'gutenberg' ) . '</span>'
88 ),
89 'edit_theme_options',
90 'gutenberg-edit-site',
91 'gutenberg_edit_site_page'
92 );
93 }
94 }
95 add_action( 'admin_menu', 'gutenberg_site_editor_menu', 9 );
96
97 /**
98 * Outputs a WP REST API nonce.
99 */
100 function gutenberg_rest_nonce() {
101 exit( wp_create_nonce( 'wp_rest' ) );
102 }
103 add_action( 'wp_ajax_gutenberg_rest_nonce', 'gutenberg_rest_nonce' );
104
105
106 /**
107 * Exposes the site icon url to the Gutenberg editor through the WordPress REST
108 * API. The site icon url should instead be fetched from the wp/v2/settings
109 * endpoint when https://github.com/WordPress/gutenberg/pull/19967 is complete.
110 *
111 * @since 8.2.1
112 *
113 * @param WP_REST_Response $response Response data served by the WordPress REST index endpoint.
114 * @return WP_REST_Response
115 */
116 function register_site_icon_url( $response ) {
117 $data = $response->data;
118 $data['site_icon_url'] = get_site_icon_url();
119 $response->set_data( $data );
120 return $response;
121 }
122
123 add_filter( 'rest_index', 'register_site_icon_url' );
124
125 /**
126 * Exposes the site logo to the Gutenberg editor through the WordPress REST
127 * API. This is used for fetching this information when user has no rights
128 * to update settings.
129 *
130 * @since 10.9
131 *
132 * @param WP_REST_Response $response Response data served by the WordPress REST index endpoint.
133 * @return WP_REST_Response
134 */
135 function register_site_logo_to_rest_index( $response ) {
136 $site_logo_id = get_theme_mod( 'custom_logo' );
137 $response->data['site_logo'] = $site_logo_id;
138 if ( $site_logo_id ) {
139 $response->add_link(
140 'https://api.w.org/featuredmedia',
141 rest_url( 'wp/v2/media/' . $site_logo_id ),
142 array(
143 'embeddable' => true,
144 )
145 );
146 }
147 return $response;
148 }
149
150 add_filter( 'rest_index', 'register_site_logo_to_rest_index' );
151