wp-admin/site-editor.php
Lines:
1 to 100 of 173
<?php /** * Site Editor administration screen. * * @package WordPress * @subpackage Administration */ global $editor_styles; /** WordPress Administration Bootstrap */ require_once __DIR__ . '/admin.php'; if ( ! current_user_can( 'edit_theme_options' ) ) { wp_die( '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit theme options on this site.' ) . '</p>', 403 ); } if ( ! ( current_theme_supports( 'block-template-parts' ) || wp_is_block_theme() ) ) { wp_die( __( 'The theme you are currently using is not compatible with the Site Editor.' ) ); } $is_template_part_editor = isset( $_GET['postType'] ) && 'wp_template_part' === sanitize_key( $_GET['postType'] ); if ( ! wp_is_block_theme() && ! $is_template_part_editor ) { wp_die( __( 'The theme you are currently using is not compatible with the Site Editor.' ) ); } /** * Do a server-side redirection if missing `postType` and `postId` * query args when visiting Site Editor. */ $home_template = _resolve_home_block_template(); if ( $home_template && empty( $_GET['postType'] ) && empty( $_GET['postId'] ) ) { if ( ! empty( $_GET['styles'] ) ) { $home_template['styles'] = sanitize_key( $_GET['styles'] ); } $redirect_url = add_query_arg( $home_template, admin_url( 'site-editor.php' ) ); wp_safe_redirect( $redirect_url ); exit; } // Used in the HTML title tag. $title = __( 'Editor (beta)' ); $parent_file = 'themes.php'; // Flag that we're loading the block editor. $current_screen = get_current_screen(); $current_screen->is_block_editor( true ); // Default to is-fullscreen-mode to avoid jumps in the UI. add_filter( 'admin_body_class', static function( $classes ) < { return "$classes is-fullscreen-mode"; } ); $indexed_template_types = array(); foreach ( get_default_block_template_types() as $slug => $template_type ) { $template_type['slug'] = (string) $slug; $indexed_template_types[] = $template_type; } $block_editor_context = new WP_Block_Editor_Context( array( 'name' => 'core/edit-site' ) ); $custom_settings = array( 'siteUrl' => site_url(), 'postsPerPage' => get_option( 'posts_per_page' ), 'styles' => get_block_editor_theme_styles(), 'defaultTemplateTypes' => $indexed_template_types, 'defaultTemplatePartAreas' => get_allowed_block_template_part_areas(), 'supportsLayout' => WP_Theme_JSON_Resolver::theme_has_support(), 'supportsTemplatePartsMode' => ! wp_is_block_theme() && current_theme_supports( 'block-template-parts' ), '__unstableHomeTemplate' => $home_template, ); /** * Home template resolution is not needed when block template parts are supported. * Set the value to `true` to satisfy the editor initialization guard clause. */ if ( $custom_settings['supportsTemplatePartsMode'] ) { $custom_settings['__unstableHomeTemplate'] = true; } // Add additional back-compat patterns registered by `current_screen` et al. $custom_settings['__experimentalAdditionalBlockPatterns'] = WP_Block_Patterns_Registry::get_instance()->get_all_registered( true ); $custom_settings['__experimentalAdditionalBlockPatternCategories'] = WP_Block_Pattern_Categories_Registry::get_instance()->get_all_registered( true ); $editor_settings = get_block_editor_settings( $custom_settings, $block_editor_context ); if ( isset( $_GET['postType'] ) && ! isset( $_GET['postId'] ) ) {
Called by
Invoked by
Calls
1 to 10 of 10
- _resolve_home_block_template() – Returns the correct template for the site’s home page.
- block_editor_rest_api_preload() – Preloads common data used with the block editor by specifying an array of REST API paths that will be preloaded for a given block editor context.
- get_allowed_block_template_part_areas() – Returns a filtered list of allowed area values for template parts.
- get_block_editor_settings() – Returns the contextualized block editor settings for a selected editor context.
- get_block_editor_theme_styles() – Creates an array of theme styles to load into the block editor.
- get_default_block_template_types() – Returns a filtered list of default template types, containing their localized titles and descriptions.
- WP_Block_Pattern_Categories_Registry::get_instance() – Utility method to retrieve the main instance of the class.
- WP_Block_Patterns_Registry::get_instance() – Utility method to retrieve the main instance of the class.
- wp_is_block_theme() – Returns whether the current theme is a block-based theme or not.
- WP_Theme_JSON_Resolver::get_user_global_styles_post_id() – Returns the ID of the custom post type that stores user data.
Call hooks
1 to 1 of 1