Tagged: 3.9

Summary of changes in WordPress 3.9

January 23rd, 2015 in Upgrade 0 comments

Following up on the summary of changes for WordPress 3.8 we now take a look at WordPress 3.9. WP 3.9 introduces improvements to the visual editor, media library and added widget and header previews to the Customizer. Additionally, and more improtantly for us, improvements were made to the database layer, new utility functions were added and external libraries were updated.

The biggest change we should (and already are) aware of is the switch to using MySQLi by default on servers running PHP 5.5. For the most part migrating from mysql to mysqli is straightforward though be prepared for some of the parameters switching their order.


  • Themes can now use HTML5 markup for captions and galleries
  • Post/page items are now removed from nav menus when the post/page is deleted
  • Texturize: Massive performance improvements (~600% faster); better handling of braces, nbsp, double, and weird spaces
  • Introduce an ms_site_not_found filter to replace NOBLOGREDIRECT
  • Use MYSQLi by default on servers running PHP 5.5+

New features

New Actions

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

New Filters

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


  • format_to_post

WordPress 3.9.1, 3.9.2 and 3.9.3 were reviewed as well but contained only bug fixes and security hardening patches and are not summarized in this post.