Version 4.0

You are here:

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.

  • View Closed Tickets

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
    • A new grid view adds some visual flair to finding and installing plugins, bringing relevant plugin info front and center
  • For Developers
    • Customizer Panels API
    • Updated external libraries
    • Better flexibility for WP_Query ORDER BY

Top ↑

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

Top ↑

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

Top ↑

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

Top ↑

Comments 

  • Comments in trash can now be marked as spam.

Top ↑

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.

Top ↑

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

Top ↑

Install Process 

  • Add language select menu as first Installation screen (skipped for localized installs)

Top ↑

Multisite 

  • mp4 file extension was added to allowed upload file types

Top ↑

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.

Top ↑

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

Top ↑

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.

Top ↑

Multisite 

  • Fix a bug where an incorrect schema was shown on the Edit Site screen

Top ↑

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 WP_Customize_Control::active()
  • Introduce WP_Customize_Control::active_callback()
  • Introduce WP_Customize_Control::input_attrs()
  • Introduce WP_Customize_Control::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

Top ↑

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()

Top ↑

Deprecated 

  • get_all_category_ids() – use get_terms() instead.
  • like_escape() – use $wpdb->esc_like() instead.
  • url_is_accessable_via_ssl()

Top ↑

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.

Top ↑

New Actions 

  • Introduce customize_render_panel
  • Introduce customize_render_panel_{$this->id}
  • Introduce delete_user_form
  • Introduce pre_get_users
  • Introduce rss_tag_pre

Top ↑

New Filters 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

Top ↑

Constants 

Top ↑

Deprecated 

  • FORCE_SSL_LOGIN – use FORCE_SSL_ADMIN instead.
  • WPLANG (see https://core.trac.wordpress.org/changeset/29630)

Top ↑

External Libraries 

  • Update to TinyMCE 4.1.3
  • Update to jQuery 1.11.1
  • Update to MediaElement 2.15
Was this article helpful?
Dislike 0
Views: 16