Editor: Add custom fields meta box support in the block editor.
This brings support for the custom fields meta box into the new block editor. The `webpack` and `copy-webpack-plugin` packages have also been updated. This does not bump the `@wordpress` packages like in [43861] because of conflicts with package versions already installed in `trunk`. The packages will be brought up to date in a subsequent merge. Merges [43861] and [43863] into trunk. See #45145. Fixes #45257. Built from https://develop.svn.wordpress.org/trunk@44260 git-svn-id: http://core.svn.wordpress.org/trunk@44090 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
6ffafa5bc7
commit
bbe9a37b6c
|
@ -202,6 +202,29 @@ if ( $editor_styles && current_theme_supports( 'editor-styles' ) ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Image sizes.
|
||||||
|
$image_sizes = get_intermediate_image_sizes();
|
||||||
|
$image_sizes[] = 'full';
|
||||||
|
|
||||||
|
/** This filter is documented in wp-admin/includes/media.php */
|
||||||
|
$image_size_names = apply_filters(
|
||||||
|
'image_size_names_choose',
|
||||||
|
array(
|
||||||
|
'thumbnail' => __( 'Thumbnail' ),
|
||||||
|
'medium' => __( 'Medium' ),
|
||||||
|
'large' => __( 'Large' ),
|
||||||
|
'full' => __( 'Full Size' ),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$available_image_sizes = array();
|
||||||
|
foreach ( $image_sizes as $image_size_slug ) {
|
||||||
|
$available_image_sizes[] = array(
|
||||||
|
'slug' => $image_size_slug,
|
||||||
|
'name' => isset( $image_size_names[ $image_size_slug ] ) ? $image_size_names[ $image_size_slug ] : $image_size_slug,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Lock settings.
|
// Lock settings.
|
||||||
$user_id = wp_check_post_lock( $post->ID );
|
$user_id = wp_check_post_lock( $post->ID );
|
||||||
if ( $user_id ) {
|
if ( $user_id ) {
|
||||||
|
@ -257,12 +280,17 @@ $editor_settings = array(
|
||||||
'maxUploadFileSize' => $max_upload_size,
|
'maxUploadFileSize' => $max_upload_size,
|
||||||
'allowedMimeTypes' => get_allowed_mime_types(),
|
'allowedMimeTypes' => get_allowed_mime_types(),
|
||||||
'styles' => $styles,
|
'styles' => $styles,
|
||||||
|
'availableImageSizes' => $available_image_sizes,
|
||||||
'postLock' => $lock_details,
|
'postLock' => $lock_details,
|
||||||
'postLockUtils' => array(
|
'postLockUtils' => array(
|
||||||
'nonce' => wp_create_nonce( 'lock-post_' . $post->ID ),
|
'nonce' => wp_create_nonce( 'lock-post_' . $post->ID ),
|
||||||
'unlockNonce' => wp_create_nonce( 'update-post_' . $post->ID ),
|
'unlockNonce' => wp_create_nonce( 'update-post_' . $post->ID ),
|
||||||
'ajaxUrl' => admin_url( 'admin-ajax.php' ),
|
'ajaxUrl' => admin_url( 'admin-ajax.php' ),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
// Whether or not to load the 'postcustom' meta box is stored as a user meta
|
||||||
|
// field so that we're not always loading its assets.
|
||||||
|
'enableCustomFields' => (bool) get_user_meta( get_current_user_id(), 'enable_custom_fields', true ),
|
||||||
);
|
);
|
||||||
|
|
||||||
$autosave = wp_get_post_autosave( $post_ID );
|
$autosave = wp_get_post_autosave( $post_ID );
|
||||||
|
|
|
@ -1463,11 +1463,21 @@ function register_and_do_post_meta_boxes( $post ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( post_type_supports( $post_type, 'custom-fields' ) ) {
|
if ( post_type_supports( $post_type, 'custom-fields' ) ) {
|
||||||
$args = array(
|
$screen = get_current_screen();
|
||||||
'__back_compat_meta_box' => ! (bool) get_user_meta( get_current_user_id(), 'enable_custom_fields', true ),
|
if ( ! $screen || ! $screen->is_block_editor() || (bool) get_user_meta( get_current_user_id(), 'enable_custom_fields', true ) ) {
|
||||||
'__block_editor_compatible_meta_box' => true,
|
add_meta_box(
|
||||||
);
|
'postcustom',
|
||||||
add_meta_box( 'postcustom', __( 'Custom Fields' ), 'post_custom_meta_box', null, 'normal', 'core', $args );
|
__( 'Custom Fields' ),
|
||||||
|
'post_custom_meta_box',
|
||||||
|
null,
|
||||||
|
'normal',
|
||||||
|
'core',
|
||||||
|
array(
|
||||||
|
'__back_compat_meta_box' => false,
|
||||||
|
'__block_editor_compatible_meta_box' => true,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2112,7 +2112,7 @@ function get_block_categories( $post ) {
|
||||||
array(
|
array(
|
||||||
'slug' => 'common',
|
'slug' => 'common',
|
||||||
'title' => __( 'Common Blocks' ),
|
'title' => __( 'Common Blocks' ),
|
||||||
'icon' => 'screenoptions',
|
'icon' => null,
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'slug' => 'formatting',
|
'slug' => 'formatting',
|
||||||
|
@ -2214,6 +2214,10 @@ function the_block_editor_meta_boxes() {
|
||||||
<form class="metabox-base-form">
|
<form class="metabox-base-form">
|
||||||
<?php the_block_editor_meta_box_post_form_hidden_fields( $post ); ?>
|
<?php the_block_editor_meta_box_post_form_hidden_fields( $post ); ?>
|
||||||
</form>
|
</form>
|
||||||
|
<form id="toggle-custom-fields-form" method="post" action="<?php echo esc_attr( admin_url( 'post.php' ) ); ?>">
|
||||||
|
<?php wp_nonce_field( 'toggle-custom-fields' ); ?>
|
||||||
|
<input type="hidden" name="action" value="toggle-custom-fields" />
|
||||||
|
</form>
|
||||||
<?php foreach ( $locations as $location ) : ?>
|
<?php foreach ( $locations as $location ) : ?>
|
||||||
<form class="metabox-location-<?php echo esc_attr( $location ); ?>" onsubmit="return false;">
|
<form class="metabox-location-<?php echo esc_attr( $location ); ?>" onsubmit="return false;">
|
||||||
<div id="poststuff" class="sidebar-open">
|
<div id="poststuff" class="sidebar-open">
|
||||||
|
@ -2289,6 +2293,29 @@ function the_block_editor_meta_boxes() {
|
||||||
printf( "<script type='text/javascript'>\n%s\n</script>\n", trim( $script ) );
|
printf( "<script type='text/javascript'>\n%s\n</script>\n", trim( $script ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the 'postcustom' meta box is enabled, then we need to perform some
|
||||||
|
* extra initialization on it.
|
||||||
|
*/
|
||||||
|
$enable_custom_fields = (bool) get_user_meta( get_current_user_id(), 'enable_custom_fields', true );
|
||||||
|
if ( $enable_custom_fields ) {
|
||||||
|
$script = "( function( $ ) {
|
||||||
|
if ( $('#postcustom').length ) {
|
||||||
|
$( '#the-list' ).wpList( {
|
||||||
|
addBefore: function( s ) {
|
||||||
|
s.data += '&post_id=$post->ID';
|
||||||
|
return s;
|
||||||
|
},
|
||||||
|
addAfter: function() {
|
||||||
|
$('table#list-table').show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} )( jQuery );";
|
||||||
|
wp_enqueue_script( 'wp-lists' );
|
||||||
|
wp_add_inline_script( 'wp-lists', $script );
|
||||||
|
}
|
||||||
|
|
||||||
// Reset meta box data.
|
// Reset meta box data.
|
||||||
$wp_meta_boxes = $_original_meta_boxes;
|
$wp_meta_boxes = $_original_meta_boxes;
|
||||||
}
|
}
|
||||||
|
|
|
@ -312,6 +312,18 @@ switch ( $action ) {
|
||||||
wp_redirect( $url );
|
wp_redirect( $url );
|
||||||
exit();
|
exit();
|
||||||
|
|
||||||
|
case 'toggle-custom-fields':
|
||||||
|
check_admin_referer( 'toggle-custom-fields' );
|
||||||
|
|
||||||
|
$current_user_id = get_current_user_id();
|
||||||
|
if ( $current_user_id ) {
|
||||||
|
$enable_custom_fields = (bool) get_user_meta( $current_user_id, 'enable_custom_fields', true );
|
||||||
|
update_user_meta( $current_user_id, 'enable_custom_fields', ! $enable_custom_fields );
|
||||||
|
}
|
||||||
|
|
||||||
|
wp_safe_redirect( wp_get_referer() );
|
||||||
|
exit();
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/**
|
/**
|
||||||
* Fires for a given custom post action request.
|
* Fires for a given custom post action request.
|
||||||
|
|
|
@ -235,6 +235,7 @@ function wp_default_packages_scripts( &$scripts ) {
|
||||||
'data' => array(
|
'data' => array(
|
||||||
'lodash',
|
'lodash',
|
||||||
'wp-compose',
|
'wp-compose',
|
||||||
|
'wp-deprecated',
|
||||||
'wp-element',
|
'wp-element',
|
||||||
'wp-is-shallow-equal',
|
'wp-is-shallow-equal',
|
||||||
'wp-polyfill',
|
'wp-polyfill',
|
||||||
|
@ -351,6 +352,7 @@ function wp_default_packages_scripts( &$scripts ) {
|
||||||
'lodash',
|
'lodash',
|
||||||
'wp-blocks',
|
'wp-blocks',
|
||||||
'wp-data',
|
'wp-data',
|
||||||
|
'wp-deprecated',
|
||||||
'wp-escape-html',
|
'wp-escape-html',
|
||||||
'wp-polyfill',
|
'wp-polyfill',
|
||||||
),
|
),
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '5.1-alpha-44257';
|
$wp_version = '5.1-alpha-44260';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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