}
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 );
$.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
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 );
});
};