1<?php
2/**
3 * Blocks API: WP_Block_Editor_Context class
4 *
5 * @package WordPress
6 * @since 5.8.0
7 */
8
9/**
10 * Contains information about a block editor being rendered.
11 *
12 * @since 5.8.0
13 */
14#[AllowDynamicProperties]
15final class WP_Block_Editor_Context {
16 /**
17 * String that identifies the block editor being rendered. Can be one of:
18 *
19 * - `'core/edit-post'` - The post editor at `/wp-admin/edit.php`.
20 * - `'core/edit-widgets'` - The widgets editor at `/wp-admin/widgets.php`.
21 * - `'core/customize-widgets'` - The widgets editor at `/wp-admin/customize.php`.
22 * - `'core/edit-site'` - The site editor at `/wp-admin/site-editor.php`.
23 *
24 * Defaults to 'core/edit-post'.
25 *
26 * @since 6.0.0
27 *
28 * @var string
29 */
30 public $name = 'core/edit-post';
31
32 /**
33 * The post being edited by the block editor. Optional.
34 *
35 * @since 5.8.0
36 *
37 * @var WP_Post|null
38 */
39 public $post = null;
40
41 /**
42 * Constructor.
43 *
44 * Populates optional properties for a given block editor context.
45 *
46 * @since 5.8.0
47 *
48 * @param array $settings The list of optional settings to expose in a given context.
49 */
50 public function __construct( array $settings = array() ) {
51 if ( isset( $settings['name'] ) ) {
52 $this->name = $settings['name'];
53 }
54 if ( isset( $settings['post'] ) ) {
55 $this->post = $settings['post'];
56 }
57 }
58}
59