# gutenberg/23.7.2/lib/experimental/pages/site-editor.php

Gutenberg, version 23.7.2. 95 lines.

- Page: https://pluginprobe.com/plugins/gutenberg/23.7.2/code/lib/experimental/pages/site-editor.php
- Raw: https://pluginprobe.com/plugins/gutenberg/23.7.2/raw/lib/experimental/pages/site-editor.php
- Modified: 2026-07-22T11:19:40+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/gutenberg/23.7.2/code/lib/experimental/pages/site-editor.php#L10-L20`.

```php
<?php
/**
 * Site Editor Page - Integration file for admin menu registration.
 *
 * @package gutenberg
 */

/**
 * Register site editor admin page in WordPress admin menu.
 */
function gutenberg_register_site_editor_admin_page() {
	add_submenu_page(
		'nothing',
		__( 'Site Editor', 'gutenberg' ),
		__( 'Site Editor', 'gutenberg' ),
		'manage_options',
		'site-editor-v2',
		'gutenberg_site_editor_v2_render_page'
	);
}
add_action( 'admin_menu', 'gutenberg_register_site_editor_admin_page' );

/**
 * Register default menu items for the site editor page.
 */
function gutenberg_site_editor_register_default_menu_items() {
	gutenberg_register_site_editor_v2_menu_item( 'home', __( 'Home', 'gutenberg' ), '/', '' );
	gutenberg_register_site_editor_v2_menu_item( 'styles', __( 'Styles', 'gutenberg' ), '/styles', '' );
	gutenberg_register_site_editor_v2_menu_item( 'navigation', __( 'Navigation', 'gutenberg' ), '/navigation', '' );
	gutenberg_register_site_editor_v2_menu_item( 'pages', __( 'Pages', 'gutenberg' ), '/types/page', '' );
	gutenberg_register_site_editor_v2_menu_item( 'templates', __( 'Templates', 'gutenberg' ), '/templates', '' );
	gutenberg_register_site_editor_v2_menu_item( 'templateParts', __( 'Template Parts', 'gutenberg' ), '/template-parts', '' );
	gutenberg_register_site_editor_v2_menu_item( 'patterns', __( 'Patterns', 'gutenberg' ), '/patterns', '' );
}
add_action( 'site-editor-v2_init', 'gutenberg_site_editor_register_default_menu_items', 5 );

/**
 * Renders the admin bar on the site editor page.
 */
function gutenberg_site_editor_enable_admin_bar() {
	if ( ! is_admin_bar_showing() ) {
		return;
	}

	remove_action( 'admin_bar_menu', 'wp_admin_bar_sidebar_toggle', 0 );
	add_action( 'admin_footer-site-editor-v2', 'wp_admin_bar_render' );

	$admin_color = get_user_option( 'admin_color' );
	if ( empty( $admin_color ) ) {
		$admin_color = 'modern';
	}
	$admin_color_class = 'admin-color-' . sanitize_html_class( $admin_color );

	add_action(
		'admin_footer-site-editor-v2',
		static function () use ( $admin_color_class ) {
			echo '<script>'
				. 'document.body.classList.add(' . wp_json_encode( $admin_color_class ) . ');'
				. '</script>';
		}
	);

	wp_enqueue_script( 'admin-bar' );
	wp_enqueue_style( 'admin-bar' );
	wp_enqueue_style( 'colors' );

	$css = <<<CSS
#wpadminbar {
	display: block;
}

#site-editor-v2-app {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0);
	left: 0;
	right: 0;
	bottom: 0;
	height: calc(100vh - var(--wp-admin--admin-bar--height, 0)) !important;
}

@media (min-width: 782px) {
	body:has(.editor-editor-interface.is-distraction-free) {
		--wp-admin--admin-bar--height: 0px;
	}

	body:has(.editor-editor-interface.is-distraction-free) #wpadminbar {
		display: none;
	}
}
CSS;

	wp_add_inline_style( 'admin-bar', $css );
}
add_action( 'site-editor-v2_init', 'gutenberg_site_editor_enable_admin_bar' );

```
