Version 4.0

On September 4, 2014, WordPress Version 4.0 “Benny,” named for jazz musician Benny Goodman, was released to the public. For more information on this enhancement and bug-fix release, read the WordPress Blog, and see the Changelog for 4.0.

For Version 4.0, the database version (db_version in wp_options) changed to 29630, and the Trac revision was 29710.

Highlights

  • Manage your media and embedded content with style
    • Explore your uploads in a beautiful, endless grid
    • A new details preview makes viewing and editing any amount of media in sequence a snap.
  • The content-editing experience is better than ever
    • The visual editor now expands to fit your content
    • A fixed toolbar in the editor when you scroll
    • Embeddable content previews right in the visual editor
  • Better workflow for finding and installing plugins
  • For Developers
    • Customizer Panels API
    • Updated external libraries
    • Better flexibility for WP_Query ORDER BY

What’s New

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”
  • Fixed several problems with formatting of curly quotes, square braces, non-breaking spaces, and related performance issues.

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_oEmbed::get_provider()
  • Introduce WP_oEmbed::_add_provider_early()
  • Introduce WP_oEmbed::_remove_provider_early()

Functions

What’s New

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

New Filters

Constants

Deprecated

External Libraries

  • Update to TinyMCE 4.1.3
  • Update to jQuery 1.11.1
  • Update to MediaElement 2.15

First published

Last updated