In addition to the ~35 defects that were fixed in this release, there were also ~17 features and enhancements that were made. What follows are some highlights, starting with some smaller enhancements and then listing out full posts that document the larger features.
Setting-less Controls (#35926)
Sometimes controls need to be added which don’t directly have associated settings. For example, there can be controls needed which manipulate some aspect of the Customizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. interface or manage the behavior of other controls and their settings: consider a control for managing repeating controls, where the button only serves to create other controls and their settings. When nav menus were added in the Customizer in 4.3, the UI User interface for creating a new menu involved two controls which had custom settings associated them (create_new_menu and new_menu_name) which served no purpose other than to make sure the control wouldn’t raise an error. The settings had custom types to prevent them from getting saved to the DB.
In 4.5, controls are no longer required to have associated settings. By default registering a control without an explicit settings
argument will result in the control’s own id
being supplied as the associated setting id
. To explicitly register a control without any associated settings, pass an empty array as the settings
:
$wp_customize->add_control( 'new-post', array(
'section' => 'title_tagline',
'settings' => array(),
'type' => 'button',
'input_attrs' => array(
'value' => __( 'Add Post' ),
),
'capability' => 'edit_posts',
) );
Because controls no longer require settings, controls now accept a capability
argument (as seen above) whereas previously a control’s capability would depend on the capabilities of its associated settings. A control will not be displayed if it has a defined capability
which the user doesn’t have, or if the user doesn’t have the capability
required for any of the associated settings. If you omit the capability
for a setting-less control, it will be displayed to all users (who can customize
).
Other Improvements
- Shift-click on nav menu items in preview to open corresponding control in Customizer pane (#26005).
- Shift-click on site title and tagline for Core Core is the set of software required to run WordPress. The Core Development Team builds WordPress. themes and any that implement selective refresh partials for these settings. Focus on the control for any setting in the preview by sending a
focus-control-for-setting
message to the pane, passing the setting ID. This is used to focus on controls when a shift-click is done on a selective refresh partial.
- Site title and tagline will be updated via selective refresh in core themes. (#33738)
WP_Customize_Manager::add_*()
methods now return the added instance. (#34596)
WP_Customize_Manager::add_setting()
now applies the relevant dynamic setting filters. (#34597)
- There is a new
customize_nav_menu_searched_items
filter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. for nav menu item searches. (#34947)
- The
WP_Customize_Media_Control
now allows its button_labels
to be overridden. (#35542)
- The setting models in the preview now have a
id
property and _dirty
flag to correspond to the settings in the pane; dynamically created settings in the pane will be created in the preview. (#35616)
- More config settings are exported to the preview to allow the preview to do more operations inline, including more nonces, the current theme, and the previewed URL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org. (#35617)
Dedicated Feature Posts
Device Preview (#31195)
https://make.wordpress.org/core/2016/01/28/previewing-site-responsiveness-in-the-customizer/
Selective Refresh (#27355)
https://make.wordpress.org/core/2016/02/16/selective-refresh-in-the-customizer/
Custom Logo (#33755)
https://make.wordpress.org/core/2016/03/10/custom-logo/
#4-5, #customize, #dev-notes