diff --git a/src/wp-admin/js/widgets/text-widgets.js b/src/wp-admin/js/widgets/text-widgets.js index 692a0642c9..bb19f2ffb2 100644 --- a/src/wp-admin/js/widgets/text-widgets.js +++ b/src/wp-admin/js/widgets/text-widgets.js @@ -4,7 +4,8 @@ wp.textWidgets = ( function( $ ) { 'use strict'; var component = { - dismissedPointers: [] + dismissedPointers: [], + idBases: [ 'text' ] }; /** @@ -357,7 +358,7 @@ wp.textWidgets = ( function( $ ) { widgetForm = widgetContainer.find( '> .widget-inside > .form, > .widget-inside > form' ); // Note: '.form' appears in the customizer, whereas 'form' on the widgets admin screen. idBase = widgetForm.find( '> .id_base' ).val(); - if ( 'text' !== idBase ) { + if ( -1 === component.idBases.indexOf( idBase ) ) { return; } @@ -424,7 +425,7 @@ wp.textWidgets = ( function( $ ) { } idBase = widgetForm.find( '> .widget-control-actions > .id_base' ).val(); - if ( 'text' !== idBase ) { + if ( -1 === component.idBases.indexOf( idBase ) ) { return; } @@ -461,7 +462,7 @@ wp.textWidgets = ( function( $ ) { widgetForm = widgetContainer.find( '> .widget-inside > .form, > .widget-inside > form' ); idBase = widgetForm.find( '> .id_base' ).val(); - if ( 'text' !== idBase ) { + if ( -1 === component.idBases.indexOf( idBase ) ) { return; } diff --git a/src/wp-includes/widgets/class-wp-widget-text.php b/src/wp-includes/widgets/class-wp-widget-text.php index c28ed1f317..e6d979347d 100644 --- a/src/wp-includes/widgets/class-wp-widget-text.php +++ b/src/wp-includes/widgets/class-wp-widget-text.php @@ -55,11 +55,13 @@ class WP_Widget_Text extends WP_Widget { } $this->registered = true; + wp_add_inline_script( 'text-widgets', sprintf( 'wp.textWidgets.idBases.push( %s );', wp_json_encode( $this->id_base ) ) ); + // Note that the widgets component in the customizer will also do the 'admin_print_scripts-widgets.php' action in WP_Customize_Widgets::print_scripts(). add_action( 'admin_print_scripts-widgets.php', array( $this, 'enqueue_admin_scripts' ) ); // Note that the widgets component in the customizer will also do the 'admin_footer-widgets.php' action in WP_Customize_Widgets::print_footer_scripts(). - add_action( 'admin_footer-widgets.php', array( $this, 'render_control_template_scripts' ) ); + add_action( 'admin_footer-widgets.php', array( 'WP_Widget_Text', 'render_control_template_scripts' ) ); } /** @@ -376,8 +378,9 @@ class WP_Widget_Text extends WP_Widget { * Render form template scripts. * * @since 4.8.0 + * @since 4.9.0 The method is now static. */ - public function render_control_template_scripts() { + public static function render_control_template_scripts() { $dismissed_pointers = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ); ?>