From 7134636c6bd64d3f4e2a0fa75e245ce4fc9113c2 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers Date: Mon, 17 Dec 2018 17:02:02 +0000 Subject: [PATCH] TinyMCE: Run the filters for the Classic block. The `wp_editor_settings` and `disable_captions` filters need to be run for the Classic Block. This fixes possible regressions in plugins that use these filters, and plugins that use them to add filters for the buttons, external plugins, etc. Props azaozz. Merges [43914] into trunk. Fixes #45348. git-svn-id: https://develop.svn.wordpress.org/trunk@44265 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/script-loader.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php index 5ed87cc7af..bc555e0058 100644 --- a/src/wp-includes/script-loader.php +++ b/src/wp-includes/script-loader.php @@ -516,6 +516,9 @@ function wp_default_packages_inline_scripts( &$scripts ) { /** * Adds inline scripts required for the TinyMCE in the block editor. * + * These TinyMCE init settings are used to extend and override the default settings + * from `_WP_Editors::default_settings()` for the Classic block. + * * @since 5.0.0 * * @global WP_Scripts $wp_scripts @@ -523,6 +526,9 @@ function wp_default_packages_inline_scripts( &$scripts ) { function wp_tinymce_inline_scripts() { global $wp_scripts; + /** This filter is documented in wp-includes/class-wp-editor.php */ + $editor_settings = apply_filters( 'wp_editor_settings', array( 'tinymce' => true ), 'classic-block' ); + $tinymce_plugins = array( 'charmap', 'colorpicker', @@ -548,6 +554,13 @@ function wp_tinymce_inline_scripts() { $tinymce_plugins = apply_filters( 'tiny_mce_plugins', $tinymce_plugins, 'classic-block' ); $tinymce_plugins = array_unique( $tinymce_plugins ); + $disable_captions = false; + // Runs after `tiny_mce_plugins` but before `mce_buttons`. + /** This filter is documented in wp-admin/includes/media.php */ + if ( apply_filters( 'disable_captions', '' ) ) { + $disable_captions = true; + } + $toolbar1 = array( 'formatselect', 'bold', @@ -602,6 +615,14 @@ function wp_tinymce_inline_scripts() { 'classic_block_editor' => true, ); + if ( $disable_captions ) { + $tinymce_settings['wpeditimage_disable_captions'] = true; + } + + if ( ! empty( $editor_settings['tinymce'] ) && is_array( $editor_settings['tinymce'] ) ) { + array_merge( $tinymce_settings, $editor_settings['tinymce'] ); + } + /* This filter is documented in wp-includes/class-wp-editor.php */ $tinymce_settings = apply_filters( 'tiny_mce_before_init', $tinymce_settings, 'classic-block' );