On November 14, 2017, WordPress Version 4.9, named for jazz musician XXXXXX, will be released to the public. For more information on this enhancement and bug-fix release, read the blogWordPress Blog, and see the Changelog for 4.9.
For Version 4.9, the database version (db_version in wp_options) changed to XXXXXX, and the Trac revision was XXXXXX.
Customizer Workflow Improved
- Draft and Schedule Site Design Customizations
- Just like you can draft and revise posts and schedule them to go live on the date and time you choose, you can now tinker with your site's design and schedule those design changes to go live as you please.
- Collaborate with Design Preview Links
- WordPress Version 4.9 gives you a preview link you can send to your team and customers so that you can collect and integrate feedback before you schedule the changes to go live.
- Design Locking To Guard Your Changes
- The design lock feature secures your draft design so that no one can make changes to it or erase all your work.
- A Prompt to Protect Your Work
- WordPress Version 4.9 will ask whether or not you’d like to save your unsaved changes.
- Automatic Publish of Customizer-created posts
- Automatically Customizer-created posts will be published when scheduled changes are published.
- A brand new theme browsing experience
- The new flow seamlessly integrates theme management into the customization experience by bringing a new theme browsing framework into the customization interface along with the ability to install and live-preview a theme in a single click.
- Better Menu Instructions
- The user experience for a menu creation process was improved.
- Shortcodes in Text Widget
- One very longstanding request—for over 8 years is finally implemented in WordPress Version 4.9. It is no longer required to have plugins and themes do
add_filter( 'widget_text', 'do_shortcode' ).
- Media to Text Widget
- You can embed images, galleries, videos, audio, and other media into the widget along with your text, with Add Media button in the Text Widget.
- Embeds in Text Widget and Video Widget
Text Widget supports
embed shortcode. Video Widget supports not only YouTube and Vimeo but any oEmbed provider for video.
- New Gallery Widget
- You can now add a gallery via widget.
The Finer Points
- More Reliable Theme Switching
- WordPress Version 4.9 offer more persistent menu and widget placement when theme was switched. Additionally, you can preview installed themes or download, install, and preview new themes right.
- Singular capabilities for activating and deactivating individual plugins
- The singular
deactivate_plugincapabilities are used along with the corresponding plugin name when determining whether or not a user can activate or deactivate an individual plugin.
- Sandbox PHP file edits in both plugins and themes, without auto-deactivation when an error occurs
- A PHP edit that introduces a fatal error is rolled back with an opportunity then for the user to fix the error and attempt to re-save.
- Addition of dirty state for widgets on the Administration Screen
- indicating when a widget has been successfully saved and showing an “Are you sure?” dialog when attempting to leave without saving changes.
- Syntax Highlighting and Error Checking
- With syntax highlighting and error checking for CSS editing and the Custom HTML widget, you'll pinpoint coding errors quickly.
- Warning Potential Danger Ahead
- When you edit themes and plugins directly, WordPress Version 4.9 will politely warn you that this is a dangerous practice.
- Sandbox PHP file edits in both plugins and themes
- Without auto-deactivation when an error occurs, a PHP edit that introduces a fatal error is rolled back with an opportunity then for the user to fix the error and attempt to re-save.
- Drafting (#39896) and scheduling (#28721) of changes in the Customizer. Once you save or schedule a changeset, when any user comes into the Customizer the pending changes will be autoloaded. A button is provided to discard changes to restore the Customizer to the last published state.
- Addition of a frontend preview link to the Customizer to allow changes to be browsed on the frontend, even without a user being logged in (#39896)
- Addition of autosave revisions in the Customizer (#39275)
- A brand new theme browsing experience in the Customizer (#37661)
- Improve the flow for creating new menus in the Customizer (#40104)
- Educated guess mapping of nav menus and widgets when switching themes (#39692)
- Plugins: Introduce singular capabilities for activating and deactivating individual plugins (#38652)
- Sandbox PHP file edits in both plugins and themes (#21622)
- Support for videos from providers other than YouTube and Vimeo in the Video widget (#42039)
- Media: Upgrade MediaElement.js to 4.2.5-74e01a40 (#39686)
- Media: Use max-width for default captions (#33981)
- Media: Reduce duplicated custom header crops in the Customizer (#21819)
- Media: Store video creation date in meta (#35218)
- Gallery widget (#41914), following the media and image widgets introduced in Version 4.8
- Support for shortcodes in Text widgets (#10457)
- Support for adding media to Text widgets (#40854)
- Addition of dirty state for widgets on the Administration Screen, indicating when a widget has been successfully saved and showing an “Are you sure?” dialog when attempting to leave without saving changes (#23120, #41610)
- Role/Capability: Introduce capabilities dedicated to installing and updating language files (#39677)
- Users: Require a confirmation link in an email to be clicked when a user attempts to change their email address (#16470)
Under The Hood
- CodeMirror editor added to theme/plugin editor, Custom CSS in Customizer, and Custom HTML widgets (#12423)
- Introduction of an extensible code editor control for adding instances of CodeMirror to the Customizer (#41897)
- Addition of global notifications area (#35210), panel and section notifications (#38794), and a notification overlay that takes over the entire screen in the Customizer (#37727).
- A date/time control in the Customizer (#42022)
- Introduction of control templates for base controls (#30738)
- Use WP_Term_Query when transforming tax queries (#37038)
- Database: Add support for MySQL servers connecting to IPv6 hosts (#41722)
- Emoji: Bring Twemoji compatibility to PHP (#35293)
- Support for adding oEmbeds outside post content, including Text widgets (#34115)
- Multisite: Introduce get_site_by() (#40180)
- Multisite: Improve get_blog_details() by using get_site_by() (#40228)
- Multisite: Improve initializing available roles when switch sites (#38645)
- Multisite: Initialize a user’s roles correctly when setting them up for a different site (#36961)
- REST API: Support registering complex data structures for settings and meta
- REST API: Support for objects in schema validation and sanitization (#38583)
- I18N: Introduce the Plural_Forms class (#41562)
Actions & Filters
New Action Hooks
New Filter Hooks
Modified Filter Hooks
- Remove SWFUpload (#41752).
- Core and the unit test suite is fully compatible with the upcoming release of PHP 7.2