Editor: Universalize functions for checking block editor status.
`use_block_editor_for_post_type` and `use_block_editor_for_post` can be very useful in more contexts than wp-admin, especially when a site is in transition. For example, you may want to do things on init that are different. Neither function depends on other functions that are available only in wp-admin (other than use_block_editor_for_post() relying on use_block_editor_for_post_type() and an admin-referrer check that's historically gated by a query variable and now also gated by is_admin), therefore moving them to wp-includes seems both feasible and beneficial Props ethitter, jorbin. Fixes #51819. Built from https://develop.svn.wordpress.org/trunk@53559 git-svn-id: http://core.svn.wordpress.org/trunk@53148 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
fe941574c3
commit
a457e3498e
|
@ -2147,76 +2147,6 @@ function taxonomy_meta_box_sanitize_cb_input( $taxonomy, $terms ) {
|
||||||
return $clean_terms;
|
return $clean_terms;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether the post can be edited in the block editor.
|
|
||||||
*
|
|
||||||
* @since 5.0.0
|
|
||||||
*
|
|
||||||
* @param int|WP_Post $post Post ID or WP_Post object.
|
|
||||||
* @return bool Whether the post can be edited in the block editor.
|
|
||||||
*/
|
|
||||||
function use_block_editor_for_post( $post ) {
|
|
||||||
$post = get_post( $post );
|
|
||||||
|
|
||||||
if ( ! $post ) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// We're in the meta box loader, so don't use the block editor.
|
|
||||||
if ( isset( $_GET['meta-box-loader'] ) ) {
|
|
||||||
check_admin_referer( 'meta-box-loader', 'meta-box-loader-nonce' );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$use_block_editor = use_block_editor_for_post_type( $post->post_type );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Filters whether a post is able to be edited in the block editor.
|
|
||||||
*
|
|
||||||
* @since 5.0.0
|
|
||||||
*
|
|
||||||
* @param bool $use_block_editor Whether the post can be edited or not.
|
|
||||||
* @param WP_Post $post The post being checked.
|
|
||||||
*/
|
|
||||||
return apply_filters( 'use_block_editor_for_post', $use_block_editor, $post );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether a post type is compatible with the block editor.
|
|
||||||
*
|
|
||||||
* The block editor depends on the REST API, and if the post type is not shown in the
|
|
||||||
* REST API, then it won't work with the block editor.
|
|
||||||
*
|
|
||||||
* @since 5.0.0
|
|
||||||
*
|
|
||||||
* @param string $post_type The post type.
|
|
||||||
* @return bool Whether the post type can be edited with the block editor.
|
|
||||||
*/
|
|
||||||
function use_block_editor_for_post_type( $post_type ) {
|
|
||||||
if ( ! post_type_exists( $post_type ) ) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! post_type_supports( $post_type, 'editor' ) ) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$post_type_object = get_post_type_object( $post_type );
|
|
||||||
if ( $post_type_object && ! $post_type_object->show_in_rest ) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Filters whether a post is able to be edited in the block editor.
|
|
||||||
*
|
|
||||||
* @since 5.0.0
|
|
||||||
*
|
|
||||||
* @param bool $use_block_editor Whether the post type can be edited or not. Default true.
|
|
||||||
* @param string $post_type The post type being checked.
|
|
||||||
*/
|
|
||||||
return apply_filters( 'use_block_editor_for_post_type', true, $post_type );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepares server-registered blocks for the block editor.
|
* Prepares server-registered blocks for the block editor.
|
||||||
*
|
*
|
||||||
|
|
|
@ -8106,3 +8106,75 @@ function wp_get_original_image_url( $attachment_id ) {
|
||||||
function wp_untrash_post_set_previous_status( $new_status, $post_id, $previous_status ) {
|
function wp_untrash_post_set_previous_status( $new_status, $post_id, $previous_status ) {
|
||||||
return $previous_status;
|
return $previous_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the post can be edited in the block editor.
|
||||||
|
*
|
||||||
|
* @since 5.0.0
|
||||||
|
* @since 6.1.0 Moved to wp-includes from wp-admin.
|
||||||
|
*
|
||||||
|
* @param int|WP_Post $post Post ID or WP_Post object.
|
||||||
|
* @return bool Whether the post can be edited in the block editor.
|
||||||
|
*/
|
||||||
|
function use_block_editor_for_post( $post ) {
|
||||||
|
$post = get_post( $post );
|
||||||
|
|
||||||
|
if ( ! $post ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We're in the meta box loader, so don't use the block editor.
|
||||||
|
if ( is_admin() && isset( $_GET['meta-box-loader'] ) ) {
|
||||||
|
check_admin_referer( 'meta-box-loader', 'meta-box-loader-nonce' );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$use_block_editor = use_block_editor_for_post_type( $post->post_type );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filters whether a post is able to be edited in the block editor.
|
||||||
|
*
|
||||||
|
* @since 5.0.0
|
||||||
|
*
|
||||||
|
* @param bool $use_block_editor Whether the post can be edited or not.
|
||||||
|
* @param WP_Post $post The post being checked.
|
||||||
|
*/
|
||||||
|
return apply_filters( 'use_block_editor_for_post', $use_block_editor, $post );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether a post type is compatible with the block editor.
|
||||||
|
*
|
||||||
|
* The block editor depends on the REST API, and if the post type is not shown in the
|
||||||
|
* REST API, then it won't work with the block editor.
|
||||||
|
*
|
||||||
|
* @since 5.0.0
|
||||||
|
* @since 6.1.0 Moved to wp-includes from wp-admin.
|
||||||
|
*
|
||||||
|
* @param string $post_type The post type.
|
||||||
|
* @return bool Whether the post type can be edited with the block editor.
|
||||||
|
*/
|
||||||
|
function use_block_editor_for_post_type( $post_type ) {
|
||||||
|
if ( ! post_type_exists( $post_type ) ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! post_type_supports( $post_type, 'editor' ) ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$post_type_object = get_post_type_object( $post_type );
|
||||||
|
if ( $post_type_object && ! $post_type_object->show_in_rest ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filters whether a post is able to be edited in the block editor.
|
||||||
|
*
|
||||||
|
* @since 5.0.0
|
||||||
|
*
|
||||||
|
* @param bool $use_block_editor Whether the post type can be edited or not. Default true.
|
||||||
|
* @param string $post_type The post type being checked.
|
||||||
|
*/
|
||||||
|
return apply_filters( 'use_block_editor_for_post_type', true, $post_type );
|
||||||
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '6.1-alpha-53558';
|
$wp_version = '6.1-alpha-53559';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
|
Loading…
Reference in New Issue