WordPress.org

Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Version 3.9

On April 16, 2014, WordPress Version 3.9, named for jazz musician Jimmy Smith, was released to the public. For more information on this enhancement and bug-fix release, read the WordPress Blog, and see the Changelog for 3.9.

For Version 3.9, the database version (db_version in wp_options) changed to 27916, and the Trac revision was 28154.

Highlights

  • A smoother media editing experience
    • Improved visual editing - speed, accessibility, and mobile support
    • Edit images easily - quicker access to crop and rotation tools, scale images directly in the editor
    • Drag and drop your images right onto the editor
    • Image gallery previews right in the editor
    • Showcase music and clips with simple audio and video playlists
    • Live widget and header image previews in the Customizer
    • Stunning new theme browser
  • For Developers
    • Themes can now use HTML5 markup for captions and galleries
    • Inline code documentation for action and filter hooks, and media manager and customizer APIs
    • External libraries have been updated
    • Improved database layer
    • New utility functions

What's New

General

  • The "update" message has been restored to the dashboard

Posts

  • Add "Return to post editor" link from Revisions screen
  • A "View Post" link will now show for any post an author can read
  • Distraction Free Writing mode is now responsive to any size device

Media

  • Edit images from the Add Media modal
  • Improvements to the "Attach Media" pop-up interface
  • Better support for auto-playing videos
  • Drag and Drop files into the editor
  • Full-screen Drag and Drop zone in Distraction Free Writing
  • oEmbed support added for imgur and meetup.com

Comments

  • Small improvements to comment administration screens, link colors, language tweaks

Appearance

  • Widget Customizer management
  • Upload header images with cropping in the Customizer
  • Improved theme install workflow

Users

  • Admin auto-complete improvements
  • Make sure the "Send this password to the new user by email" toggle option value is remembered

Accessibility

  • Improved focus styles for form elements throughout the admin
  • Keyboard accessibility added for theme install screen and theme action buttons

Install Process

  • Make it easier to customize the install process
  • Passwords with apostrophes are no longer allowed on installation

Multisite

  • Add autocomplete for the admin email account to the "new site" form

Under The Hood

General

  • Add ability to output galleries as HTML5
  • Introduce doing_filter() and doing_action() to identify hooks in progress
  • Introduce .dashicons-before class to make it easier to use a Dashicon before an element
  • Add ability to symlink plugins
  • The core colors.css file was merged into wp-admin.css, resulting in 1,065 fewer lines of admin CSS
  • Dashicons updated to latest. Adds line break, paragraph, code, and bbPress.
  • Add a TTL to core update checks to allow narrowing of the 12-hour update window
  • The 'role' attribute is now allowed in kses for all elements
  • Rewrite endpoints can now specify a query variable name

JavaScript

  • Autosave JS has been refactored to use the Heartbeat API
  • Heartbeat: Hooks will now always receive unslashed data
  • Options passed to Backbone.View’s constructor are no longer attached automatically. wp.Backbone.View now handles this
  • Big improvements to documentation of Backbone media-views
  • Updated media-views and wp.Backbone.View for Backbone 1.1
  • Masonry has a new script handle, 'masonry', and no longer depends on jQuery

Bug Fixes

  • wp_auth_check now runs properly on every Heartbeat tick
  • Post/page items are now removed from nav menus when the post/page is deleted
  • Ensure the $path is trailing-slashed in domain_exists()
  • Fix bulk activation of network-only plugins
  • Texturize: Massive performance improvements (~600% faster); better handling of braces, nbsp, double, and weird spaces

Multisite

  • Introduce get_network_by_path()
  • Introduce wp_get_network()
  • Introduce Function_Reference/get_site_by_path|get_site_by_path()
  • Incremental improvements and bug fixes with the multisite load process
  • Introduce an ms_site_not_found filter to replace NOBLOGREDIRECT

Classes

What's New

  • Introduce WP_Upgrader_Skin::decrement_update_count()
  • Introduce Bulk_Upgrader_Skin::decrement_update_count()

Functions

What's New

  • Introduce wp_normalize_path|wp_normalize_path()
  • Introduce has_image_size()
  • Introduce remove_image_size()
  • Introduce wp_playlist_shortcode()
  • Introduce wp_maybe_generate_attachment_metadata()
  • Introduce _count_posts_cache_key()
  • Introduce get_the_permalink()
  • Introduce wp_validate_logged_in_cookie()

Deprecated

Actions & Filters

New Actions

  • Introduce resetpass_form
  • Introduce wp_install
  • Introduce wp_upgrade
  • Introduce wp_playlist_scripts
  • Introduce dynamic_sidebar_before
  • Introduce dynamic_sidebar_after

New Filters

  • Introduce get_adjacent_post_query_args
  • Introduce post_playlist
  • Introduce wp_insert_attachment_data
  • Introduce incompatible_sql_modes
  • Introduce theme_page_templates
  • Introduce pre_get_network_by_path
  • Introduce network_by_path_segments_count
  • Introduce site_by_path_segments_count
  • Introduce pre_get_site_by_path
  • Introduce pre_wp_nav_menu
  • Introduce pre_set_theme_mod_$name
  • Introduce determine_current_user
  • Introduce playlist_styles
  • Introduce dynamic_sidebar_has_widgets
  • Introduce is_active_sidebar
  • Introduce ms_site_not_found
  • Introduce pre_update_option

Deprecated

  • format_to_post

External Libraries

  • Update to TinyMCE 4.0
  • Update to Masonry 3.0
  • Update to Backbone 1.1.2
  • Update to Underscore 1.6
  • Update to PHPMailer 5.2.7
  • Update to Plupload 2.1.1
  • Update to jQuery 1.11.0
  • Update to jQuery UI 1.10.4
  • Update to MediaElement 2.14

Miscellaneous

See also: other WordPress Versions.