WordPress 4.0 is now available. Users can directly upgrade WordPress version from their admin area. Be sure to secure full backup before upgrading to WordPress 4.0
Version 4.0 of WordPress, named “Benny” in honor of jazz clarinetist and bandleader Benny Goodman. This release brings you a smoother writing and management experience. Following are the complete changelog for WordPress 4.0:
General
- Featured image previews now support .bmp files
- Featured Image meta box is now hidden for contributors lacking upload capabilities
- New supported oEmbed providers: CollegeHumor, Issuu, Mixcloud, YouTube playlists, TED talks
- Install WordPress in your language
- Streamlined Language management right from the dashboard
Posts
- Display embed previews for audio/visual URLs in Visual editor content box.
- Page scrolling now scrolls post content box.
- Edit Post/Page menu bar sticks to top of content box when scrolling (Visual and Text editor).
- Color picker was re-added to the Visual editor
Media
- Add Media Grid view option (default) for Media Library
- Add “Bulk Select” button to Media Grid view to delete multiple items
- Add oEmbed support for TED talks, Mixcloud, CollegeHumor.com, Issuu
- Expand oEmbed support to include YouTube playlist URLs and Polldaddy’s short URL format
- Remove Viddler oEmbed support
- Update SlideShare oEmbed regex
- Improved media experience on small screen sizes (embedded videos now responsive)
- Native video and audio shortcodes now support Flash playback looping
Comments
- Comments in trash can now be marked as spam.
Plugins
- Display plugins list as grid, with thumbnails, on Add New screen.
- Add popup window with plugin details (displays info from plugin’s directory page).
- Add “Beta Testing” tab to Plugins screen for new features-as-plugins.
Accessibility
- Improved keyboard accessibility in the Add Media panel
- Improved screen-reader support for Customizer sections
- Makes links in help tabs keyboard accessible
- Improvements for screen-readers when managing widgets in the Customizer
Install Process
- Add language select menu as first Installation screen (skipped for localized installs)
Multisite
- mp4 file extension was added to allowed upload file types
Under The Hood
General
- Performance and effectiveness improvements to wptexturize()
- Ensure custom post types nested under top-level menu items get the proper classes
- Added a src parameter to the embed shortcode
- Fixes for handling nested shortcodes
- Make default ‘template’ argument of the_taxonomies() and get_the_taxonomies() translatable
- Remove a redundant condition for comment feeds from WP_Query::get_posts()
- The Customizer now properly honors theme support defaults for background images
- Installed Themes search now shows a proper “no results” message
- Improved, more consistent styling for HTML5 input elements
- Post previews now redirect to the permalink if the post has been published
- Email and URL input types have been implemented where appropriate in the admin
- Most uses of extract() have been removed from the core code
- 3gp mime type support was added
- wp_handle_upload|sideload() logic was consolidated
- Remove dead and unused code from dashboard.php following changes in 3.8
- The operator argument now case-insensitive in tax queries
- Now possible to disable drag and drop functionality in wp_editor() instances
- Trigger _doing_it_wrong() when a registered post type or taxonomy slug is too long (20 characters max)
- Widgets management in the Customizer to leverage the new Panels API.
JavaScript
- Heartbeat API “experimental” labels have now been removed
- Improved inline documentation for Media Views
- Forces an autosave on switch from Visual to Text editor
Bug Fixes
- Fix a notice with media attached to non-existent post type
- Fix expanding and collapsing the admin menu on small screen sizes
- Fix a bug where multiple Add Media buttons shared an ID attribute
- Fix get_the_ID() not checking for a proper post object
- Fix current track highlighting in audio playlists
- Fixed bug with audio player not properly floating around images in the editor
- Fix a bug where bulk actions would be performed upon clicking the Filter button in some circumstances
- Fix remove_all_filters() always returning true via has_filter() in some scenarios
- Fix a notice in wp_reschedule_event
- Fix paragraph tags not being converted in PressThis for the Text editor
- Fix get_the_excerpt() not always checking $post->post_excerpt
- Introduce caching for oEmbed responses
- Fix an issue where attachment display settings didn’t work for galleries
- Leverage iframe sandboxing for audio and video, allowing arbitrary scripts to be loaded
- Ensure all plugins have an accurate oEmbed provider list by loading them “just in time”
Multisite
- Fix a bug where an incorrect schema was shown on the Edit Site screen
Classes
What’s New
- Introduce WP_Customize_Panel
- Introduce WP_Session_Tokens
- Introduce WP_User_Meta_Session_Tokens
- Introduce WP_Query::parse_orderby()
- Introduce WP_Query::parse_order()
- Introduce wpdb::esc_like()
- Introduce WP_oEmbed::get_provider()
- Introduce WP_oEmbed::_add_provider_early()
- Introduce WP_oEmbed::_remove_provider_early()
- Introduce ::active()
- Introduce ::active_callback()
- Introduce ::input_attrs()
- Introduce ::active_callback()
- Introduce WP_Widget_Area_Customize_Control::active_callback()
- Introduce WP_Customize_Manager::containers()
- Introduce WP_Customize_Manager::panels()
- Introduce WP_Customize_Manager::customize_preview_override_404_status()
- Introduce WP_Customize_Manager::add_panel()
- Introduce WP_Customize_Manager::get_panel()
- Introduce WP_Customize_Manager::remove_panel()
- Introduce WP_Customize_Widgets::is_widget_rendered()
- Introduce WP_Customize_Widgets::is_sidebar_rendered()
- Introduce WP_Image_Editor::get_quality()
- Introduce WP_Dependencies::recurse_deps()
- Introduce WP_Plugin_Install_List_Table::get_installed_plugin_slugs()
- Introduce magic methods for:
- Custom_Image_Header
- Custom_Background** Walker
- WP_Ajax_Response
- WP_Comment_Query
- WP_Error
- WP_Filesystem_Base
- WP_List_Table
- WP_MatchesMapRegex
- WP_Object_Cache
- WP_oEmbed
- WP_Query
- WP_Text_Diff_Renderer_Table
- WP_Roles
- WP_User_Query
Functions
What’s New
- WP_Query – Better flexibility in multiple `orderby` fields
- wp_list_pluck() – $index_key parameter added.
- Introduce attachment_url_to_postid()
- Introduce get_comments_number_text()
- Introduce get_editor_stylesheets()
- Introduce is_customize_preview()
- Introduce translations_api()
- Introduce upgrade_400()
- Introduce wp_ajax_set_attachment_thumbnail()
- Introduce wp_ajax_parse_embed()
- Introduce wp_can_install_language_pack()
- Introduce wp_destroy_all_sessions()
- Introduce wp_destroy_current_session()
- Introduce wp_destroy_other_sessions()
- Introduce wp_download_language_pack()
- Introduce wp_dropdown_languages()
- Introduce wp_embed_handler_youtube()
- Introduce wp_get_all_sessions()
- Introduce wp_get_available_translations()
- Introduce wp_get_session_token()
- Introduce wp_install_language_form()
- Introduce wpview_media_sandbox_styles()
- Introduce wp_spaces_regexp()
- Introduce wp_validate_boolean()
Deprecated
- get_all_category_ids() – use get_terms() instead.
- like_escape() – use wpdb::esc_like() instead.
- url_is_accessable_via_ssl()
Actions & Filters
- The ISO date standard YYYY-MM-DD format was added to the date_formats filter.
- The $post parameter was added to preview_post_link.
- wp_handle_upload_prefilter was renamed to {$action}_prefilter.
New Actions
- Introduce customize_render_panel
- Introduce customize_render_panel_{$this->id}
- Introduce delete_user_form
- Introduce pre_get_users
- Introduce rss_tag_pre
New Filters
- Introduce async_update_translation
- Introduce attach_session_information
- Introduce customize_control_active
- Introduce human_time_diff
- Introduce oembed_remote_get_args
- Introduce oembed_ttl
- Introduce run_wptexturize
- Introduce session_token_manager
- Introduce term_search_min_chars
- Introduce translations_api
- Introduce translations_api_result
- Introduce wp_editor_expand
- Introduce wp_editor_settings
- Introduce wp_embed_handler_youtube
- Introduce wp_list_comments_args
- Introduce wp_spaces_regexp
- Introduce wp_title_parts
- Introduce wxr_export_skip_commentmeta
Constants
Deprecated
- FORCE_SSL_LOGIN – use FORCE_SSL_ADMIN instead.
- WPLANG (see https://core.trac.wordpress.org/changeset/29630)
External Libraries
- Update to TinyMCE 4.1.3
- Update to jQuery 1.11.1
- Update to MediaElement 2.15
For discussion on WordPress 4.0 release, please refer our web hosting talk thread at WordPress 4.0 release.