b0y-101 Mini Shell


Current Path : E:/www/km/wp/wp-content/plugins/gutenberg/lib/compat/wordpress-6.3/
File Upload :
Current File : E:/www/km/wp/wp-content/plugins/gutenberg/lib/compat/wordpress-6.3/rest-api.php

<?php
/**
 * Overrides Core's wp-includes/rest-api.php and registers the new endpoint for WP 6.3.
 *
 * @package gutenberg
 */

/**
 * Updates `wp_template` and `wp_template_part` post types to use
 * Gutenberg's REST controllers
 *
 * Adds `_edit_link` to the following post type schemata:
 *
 * - wp_global_styles
 * - wp_template
 * - wp_template_part
 * - wp_navigation
 *
 * See https://github.com/WordPress/gutenberg/issues/48065
 *
 * @param array  $args Array of arguments for registering a post type.
 * @param string $post_type Post type key.
 */
function gutenberg_update_templates_template_parts_rest_controller( $args, $post_type ) {
	if ( in_array( $post_type, array( 'wp_template', 'wp_template_part' ), true ) ) {
		$template_edit_link = 'site-editor.php?' . build_query(
			array(
				'postType' => $post_type,
				'postId'   => '%s',
				'canvas'   => 'edit',
			)
		);
		$args['_edit_link'] = $template_edit_link;
	}

	if ( in_array( $post_type, array( 'wp_global_styles' ), true ) ) {
		$args['_edit_link'] = '/site-editor.php?canvas=edit';
	}

	if ( 'wp_navigation' === $post_type ) {
		$navigation_edit_link = 'site-editor.php?' . build_query(
			array(
				'postId'   => '%s',
				'postType' => 'wp_navigation',
				'canvas'   => 'edit',
			)
		);
		$args['_edit_link']   = $navigation_edit_link;
	}

	return $args;
}
add_filter( 'register_post_type_args', 'gutenberg_update_templates_template_parts_rest_controller', 10, 2 );

/**
 * Registers the Global Styles Revisions REST API routes.
 */
function gutenberg_register_global_styles_revisions_endpoints() {
	$global_styles_revisions_controller = new Gutenberg_REST_Global_Styles_Revisions_Controller_6_3();
	$global_styles_revisions_controller->register_routes();
}
add_action( 'rest_api_init', 'gutenberg_register_global_styles_revisions_endpoints' );

/**
 * Registers the Global Styles REST API routes.
 */
function gutenberg_register_global_styles_endpoints() {
	$global_styles_controller = new Gutenberg_REST_Global_Styles_Controller_6_3();
	$global_styles_controller->register_routes();
}
add_action( 'rest_api_init', 'gutenberg_register_global_styles_endpoints' );

/**
 * Add the `modified` value to the `wp_template` schema.
 *
 * @since 6.3.0 Added 'modified' property and response value.
 */
function add_modified_wp_template_schema() {
		register_rest_field(
			array( 'wp_template', 'wp_template_part' ),
			'modified',
			array(
				'schema'       => array(
					'description' => __( "The date the template was last modified, in the site's timezone.", 'gutenberg' ),
					'type'        => 'string',
					'format'      => 'date-time',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
				'get_callback' => function( $object ) {
					if ( ! empty( $object['wp_id'] ) ) {
						$post = get_post( $object['wp_id'] );
						if ( $post && isset( $post->post_modified ) ) {
							return mysql_to_rfc3339( $post->post_modified );
						}
					}
					return null;
				},
			)
		);
}
add_filter( 'rest_api_init', 'add_modified_wp_template_schema' );

/**
 * Registers the block patterns REST API routes.
 */
function gutenberg_register_rest_block_patterns() {
	$block_patterns = new Gutenberg_REST_Block_Patterns_Controller_6_3();
	$block_patterns->register_routes();
}
add_action( 'rest_api_init', 'gutenberg_register_rest_block_patterns' );


/**
 * Registers the Navigation Fallbacks REST API routes.
 */
function gutenberg_register_rest_navigation_fallbacks() {
	$editor_settings = new Gutenberg_REST_Navigation_Fallback_Controller();
	$editor_settings->register_routes();
}
add_action( 'rest_api_init', 'gutenberg_register_rest_navigation_fallbacks' );

Copyright © 2019 by b0y-101