X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/wordpress.git/blobdiff_plain/4feeb71a9d812a9ae371c28a3d8b442a4394ded7..607b7e02d77e7326161e8ec15639052d2040f745:/wp-includes/js/customize-preview-widgets.js diff --git a/wp-includes/js/customize-preview-widgets.js b/wp-includes/js/customize-preview-widgets.js index b22087b6..47972784 100644 --- a/wp-includes/js/customize-preview-widgets.js +++ b/wp-includes/js/customize-preview-widgets.js @@ -372,10 +372,15 @@ wp.customize.widgetsPreview = wp.customize.WidgetCustomizerPreview = (function( } widgetContainerElement = $( - sidebarPartial.params.sidebarArgs.before_widget.replace( '%1$s', widgetId ).replace( '%2$s', 'widget' ) + + sidebarPartial.params.sidebarArgs.before_widget.replace( /%1\$s/g, widgetId ).replace( /%2\$s/g, 'widget' ) + sidebarPartial.params.sidebarArgs.after_widget ); + // Handle rare case where before_widget and after_widget are empty. + if ( ! widgetContainerElement[0] ) { + return; + } + widgetContainerElement.attr( 'data-customize-partial-id', widgetPartial.id ); widgetContainerElement.attr( 'data-customize-partial-type', 'widget' ); widgetContainerElement.attr( 'data-customize-widget-id', widgetId ); @@ -511,7 +516,7 @@ wp.customize.widgetsPreview = wp.customize.WidgetCustomizerPreview = (function( $.each( self.registeredSidebars, function( i, sidebar ) { var widgetTpl = [ - sidebar.before_widget.replace( '%1$s', '' ).replace( '%2$s', '' ), + sidebar.before_widget, sidebar.before_title, sidebar.after_title, sidebar.after_widget @@ -521,19 +526,18 @@ wp.customize.widgetsPreview = wp.customize.WidgetCustomizerPreview = (function( widgetClasses; emptyWidget = $( widgetTpl ); - widgetSelector = emptyWidget.prop( 'tagName' ); - widgetClasses = emptyWidget.prop( 'className' ); + widgetSelector = emptyWidget.prop( 'tagName' ) || ''; + widgetClasses = emptyWidget.prop( 'className' ) || ''; // Prevent a rare case when before_widget, before_title, after_title and after_widget is empty. if ( ! widgetClasses ) { return; } + // Remove class names that incorporate the string formatting placeholders %1$s and %2$s. + widgetClasses = widgetClasses.replace( /\S*%[12]\$s\S*/g, '' ); widgetClasses = widgetClasses.replace( /^\s+|\s+$/g, '' ); - - if ( widgetClasses ) { - widgetSelector += '.' + widgetClasses.split( /\s+/ ).join( '.' ); - } + widgetSelector += '.' + widgetClasses.split( /\s+/ ).join( '.' ); self.widgetSelectors.push( widgetSelector ); }); };