Plugin Directory

Widget Customizer

Edit widgets and preview changes in Theme Customizer, with a control for each widget form in sections added for each sidebar rendered in the preview.


  • As of r27419 in WordPress Core trunk, the functionality in this plugin has been merged into core! This plugin will deactivate itself when WordPress is updated to this revision.


  • Add support for wide widget controls by sliding them out horizontally over the preview. Fixes #18. PR #89. Props westonruter.
  • Eliminate Update button and so preview updates with each input change for widgets that support live previews. Fixes #45. PR #93. Props westonruter.
  • Make widget form controls more compact on smaller screen resolutions. PR #88. Props michael-arestad.
  • Improve styling of widget search field. Fixes #83. Props shaunandrews.
  • Rename "Update" button to "Apply". PR #80. Props arnoesterhuizen.
  • Prevent error when initializing sidebar containing unregistered widget. Fixes #91. Props westonruter.
  • Only show one widget form control expanded at a time. Props westonruter.
  • Eliminate use of filter_input(). PR #74. Props westonruter.
  • Add live preview support for Twenty Fourteen Ephemera Widget.
  • And other changes...



  • Widget addition panel now features the use of a vector font for the widget icons instead of using PNGs. Fixes #69. Props michael-arestad.
  • Fade widgets not rendered in sidebars on currently-previewed URL (very helpful when using Jetpack's Widget Visibility or the like). Fixes #65. Props westonruter.
  • Sanitize all settings, including widget instances and sidebar manifests. Serialize widget instances using PHP's serialize instead of using JSON, since there may be values which cannot be represented in JSON. Ensure that backslashes are not dropped from widget instances. Fixes #28. Props westonruter.
  • Wrap available-widgets in widgets-left for compatibility with plugins which look for widget templates in that element. Fixes #51. Props westonruter.
  • Fix rendering widgets adjacent to hidden widgets. Props westonruter.
  • Improve handling of widget updates which yield no instance changes. Props westonruter.
  • Add temp filter to JS-sanitize values for settings which are no longer extant or if they need to be sanitized in an environment where the customizer is not initialized; done specifically for the Settings Revisions plugin. Props westonruter.


  • Delete widgets directly if they have not been previously-saved; if a widget has been previously saved, removal of the widget moves it to the inactive widgets sidebar. Fixes #46. Props westonruter.
  • Facilitate widgets opting-in to indicate customizer support via a widget option passed via constructor; this is in addition to the filter method. Fixes #67. Props westonruter.
  • Auto-open sidebar section in customizer when accessed via notice on widgets admin. Fixes #32. Props westonruter.
  • Animate toggling of active/inactive sidebars. Fixes #9. Props westonruter.
  • Hide sidebar sections initially to prevent FOIS (flash of inactive sidebars). Fixes #36. Props westonruter.
  • Close available widgets panel when previewed URL changes. Props westonruter.
  • Remove default live preview support from children of core twenty* themes. Props westonruter.
  • Fix submission of selected widget with “enter” keypress on filter input. Props westonruter.
  • Fix top widget padding and broken borders. Props westonruter.


Introduce new panel for browsing and selecting widgets to add to a sidebar. This replaces the select dropdown that appeared at the top of the sidebar's widget controls. Props shaunandrews, westonruter. Fixes #58.


  • Require shift key when clicking on a widget in the preview to open and focus on the widget in the customizer. Props westonruter.
  • Prevent edge case error where dynamic_sidebar is called for a non-registered sidebar. Props westonruter.


Allow themes and widgets to support previewing changes to sidebars and widgets without resorting to refreshing the entire preview window. Props westonruter. Fixes #37.


Skip over instances for widgets no longer registered (as core does), eliminating assertion warnings. Props westonruter. Fixes #48.


Fix padding for widget customizer controls in WordPress 3.8. Props westonruter. Fixes #57.


  • Add demo video to readme. Props topher1kenobe.
  • Apply some jshint fixes and update plugin dev library


  • Fix HTML markup breaking customizer "Collapse" link position.
  • Trigger widget update when hitting enter in control input. Fixes #47.


Fix addition of previously-uninstantiated widgets to previously-empty sidebars. It was not possible to add new widgets to a fresh install. Props westonruter.


Render widget control templates into DOM for plugins to manipulate. The Jetpack Widget Visibility module expects the widget templates to be rendered into the DOM as hidden elements so that it can inject the "Visibility" button in the proper place. So we have to move the templates from the model and into the DOM for compat. Other plugins probably do this as well. Props westonruter.


  • Add support for adding new widgets in the customizer. Widgets can now be added, reordered, modified, and deleted all in the customizer preview, without impacting any visitor to the site until you hit Save & Publish. Props westonruter. Fixes #3.
  • Widgets in the customizer are now all properly model-driven, meaning that changes to the settings will trigger changes to the controls. This ensures that the Settings Revisions can work as expected, even allowing you to restore previously trashed widgets and restore previous widget orderings and sidebar placements. Props westonruter.
  • Improve compatibility with plugins that add and extend widgets; the Jetpack Widget Visibility module now works fully in the customizer. Props westonruter. Fixes #39.
  • Change widget button from primary Save to secondary Apply button. Props westonruter. Fixes #40.
  • Attempt to prevent widgets from forcing their controls to be wide. Props westonruter. See #18.
  • Update styles for compatibility with MP6. Props westonruter. See #33.
  • Add initial unit tests. Props akeda (gedex). Fixes #25.


  • Remove (trash) widgets from sidebars in the customizer and preview their removal before publishing the change. Removed widgets are moved to the Inactive Widgets sidebar accessible on the widgets admin page. Props topquarky (TrevorMills), westonruter. Fixes #22.
  • Add keyboard-accessible way to expand/collapse widget form controls. Props topquarky (TrevorMills). Fixes #26.
  • Add move cursor when hovering over widget form controls. Props westonruter.
  • Feature link to Customizer on the Widgets admin page. Props johnregan3. Fixes #29.


  • Make detection of sidebars in previewed template more robust by integrating new temp hooks available in trunk. Fixes #15.
  • Allow widget form controls to be dragged to other sidebar sections. Fixes #24.
  • Eliminate duplicated code by re-using wp_widget_control()
  • Add PHPCS, JSHint, and Travis CI integration


Add drag-and-drop reordering of customizer controls, where the new order is itself previewed and is persisted until the settings are saved. Fixes issue #1. Props bobbravo2, westonruter.


Hovering over widgets in preview highlights corresponding customizer sections and controls in panel. Clicking a widget in preview opens widget form in panel and focuses on first input. Interacting with widget form highlights widget in preview. Note that this issue resolves a major usability problem illustrated by the user test video. Fixes issue #5. Props ricardocorreia, westonruter.


Render widget form controls in a collapsed state (with a toggle) as on the widgets admin page; add in-widget-title (#7). Props johnregan3.


  • Add banner image (#10). Props johnregan3.
  • Eliminate warning with an array type check


Only show customizer sections for sidebars which can currently be seen in the preview; sections show/hide dynamically as the preview frame is navigated.


First Release

Requires: 3.7 or higher
Compatible up to: 3.8.11
Last Updated: 9 months ago
Active Installs: 400+


4 out of 5 stars


1 of 1 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1