Title: Version 3.3
Published: May 19, 2019

---

# Version 3.3

## In this article

 * [Highlights](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#highlights)
 * [User Features](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#user-features)
    - [General](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#general)
    - [Dashboard](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#dashboard)
    - [Posts](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#posts)
    - [Media](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#media)
    - [Links](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#links)
    - [Comments](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#comments)
    - [Appearance](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#appearance)
    - [Plugins](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#plugins)
    - [Tools](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#tools)
    - [Users](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#users)
    - [Settings](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#settings)
    - [Install Process](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#install-process)
    - [Multisite](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#multisite)
 * [Development, Themes, Plugins](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#development-themes-plugins)

[ Back to top](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#wp--skip-link--target)

On December 12, 2011, WordPress **Version 3.3**, named for Sonny Stitt, was released
to the public. For more information on this major release, read the [WordPress Blog](https://wordpress.org/news/2011/12/sonny/).

For **Version 3.3**, the database version (**db_version** in **wp_options**) changed
to 19470, and the [Trac](https://core.trac.wordpress.org/) revision was 19592.

 * [View Closed Tickets](https://trac.wordpress.org/query?status=closed&milestone=3.3)

## 󠀁[Highlights](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#highlights)󠁿

 * **Easier Uploading**
    - File Type Detection – A single upload button
    - Drag-and-Drop Media Uploader
 * **Dashboard Design**
    - New Toolbar in the dashboard, combining the Admin Bar and admin header
    - Responsive design for some screens, including iPad/tablet support
    - Flyout menus, providing single-click access to any screen
 * **New User Experience**
    - New feature pointers, helping users navigate new features
    - Post-update About screen
    - Dashboard welcome area for new installs
 * **Content Tools**
    - Better co-editing that releases post locks immediately
    - Don’t lose widgets when switching themes
    - Tumblr Importer
 * **Under the Hood improvements**
    - Use the postname permalink structure without a performance penalty
    - Improved Editor API
    - [is_main_query()](https://codex.wordpress.org/Function_Reference/is_main_query)
      function and [WP_Query](https://codex.wordpress.org/Class_Reference/WP_Query)
      method
    - Remove a number of funky characters from post slugs
    - jQuery 1.7.1 and jQuery UI 1.8.16
    - A new Screen API for adding help documentation and adapting to screen contexts
    - Improved metadata API
 * **Performance improvements and hundreds of bug fixes**

## 󠀁[User Features](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#user-features)󠁿

### 󠀁[General](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#general)󠁿

 * Admin doctype changed to HTML5 ([#18202](https://core.trac.wordpress.org/ticket/18202))
 * Show Toolbar in backend by default ([#17899](https://core.trac.wordpress.org/ticket/17899))
 * Drag and drop multi-file uploading (except older IE)
 * Fix Press This editors
 * Switch admin menus to flyouts from dropdowns
 * WebMatrix support
 * Improve cron locking; avoid multiple cron processes looping over the same events
 * Add pointers feature, and pointer to admin bar
 * Introduce help tabs and WP_Screen
 * Style tweaks to the update nag

### 󠀁[Dashboard](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#dashboard)󠁿

 * Ensure text in the dashboard recent comments widget wraps up properly

### 󠀁[Posts](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#posts)󠁿

 * When inserting a Gallery to be ordered by Date/Time use the post_date field for
   ordering rather than ID
 * Rename ‘Post Tags’ to ‘Tags’
 * Make DFW (Distraction-Free Writing) content width match exactly the reported 
   width from the theme
 * Improve the image drag-resize detection in the visual editor (supported in FF
   and IE only), remove the size-* class if the image is soft-resized
 * Add TinyMCE command to handle opening of the upload/insert popup, fix the shortcut“
   Alt+Shift+M”, fix the “image” button in DFW
 * Allow Apostrophes in Post Passwords
 * Add post formats to quick edit and bulk edit
 * Hide post title field in DFW if title is not supported by the current post type
   or missing
 * Clean up remnants from having negative Post_ID

### 󠀁[Media](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#media)󠁿

 * Merge media buttons into one
 * Add the styling for “drop area” to Media->Add New
 * Add support for rar and 7z file uploading

### 󠀁[Links](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#links)󠁿

### 󠀁[Comments](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#comments)󠁿

 * Use WP_Editor when editing or replying to comments
 * Use ‘View Post’ instead of ‘#’ for view post links in comment rows

### 󠀁[Appearance](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#appearance)󠁿

 * Use the Settings fields/sections API in Twenty Eleven
 * Load all Parent theme stylesheets before Child theme stylesheets in the TinyMCE
   Editor
 * Clean up Plugin/Theme uploads after successfully installing them
 * Improved Theme upload and validation
 * Avoid losing widgets when switching themes
 * Make Distraction Free Writing content width match exactly the reported width 
   from the theme
 * Allow current_theme_supports() to be used to check for specific post formats
 * Improved Menus
 * Contextual help for Twenty Eleven theme options page

### 󠀁[Plugins](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#plugins)󠁿

 * Improved Plugin upload and validation
 * Stop remembering the last viewed plugins screen; always show all plugins when
   returning to plugins.php

### 󠀁[Tools](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#tools)󠁿

 * Add the Tumblr importer to the Importers List
 * Add wxr_export_skip_postmeta filter for skipping postmeta in exports

### 󠀁[Users](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#users)󠁿

 * Removed user option to disable Toolbar (admin-bar in 3.2) in the Dashboard

### 󠀁[Settings](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#settings)󠁿

 * Add postname to Settings > Permalinks and remove the help text talking about 
   permalink performance; make the slugs (and /archives/ rewrite base) translatable
 * Clarify Settings > Privacy
 * Use title case in Settings > General
 * Disallow indexing wp-admin and wp-includes in robots.txt

### 󠀁[Install Process](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#install-process)󠁿

### 󠀁[Multisite](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#multisite)󠁿

 * Allow creating sites with IDN domains
 * Move network/settings.php POST handling out of network/edit.php
 * Dissolve wp-admin/network/edit.php
 * Add ‘Network Enable’ link after installing a theme in the network admin
 * Use update_blog_details() in wpmu_update_blogs_date()
 * Change Network Settings to just Settings
 * Implement bulk update for network/themes.php
 * Fix inviting existing users to a site with email confirmation
 * Check for plugin/theme updates every hour when hitting update-core.php, not just
   themes.php/plugins.php

## 󠀁[Development, Themes, Plugins](https://wordpress.org/documentation/wordpress-version/version-3-3/?output_format=md#development-themes-plugins)󠁿

 * Abstract word-trimming from wp_trim_excerpt() into wp_trim_words()
 * Add [wp_unique_post_slug](https://codex.wordpress.org/index.php?title=Plugin_API/Filter_Reference/wp_unique_post_slug&action=edit&redlink=1)
   filter
 * Add _doing_it_wrong() when a plugin or theme accesses $wp_scripts or $wp_styles
   too early (also fixes localization)
 * Add a filter to [is_multi_author()](https://codex.wordpress.org/Function_Reference/is_multi_author)
 * Add a general filter to wp_unique_post_slug to allow for full customisation of
   the uniqueness functionality
 * Add filter for the args into wp_dropdown_pages() in the page attributes box; 
   give the list_pages filter the context of the post object
 * Add filter so the users can select custom image sizes added by themes and plugin
 * Add filters for install/upgrade queries, so that unit tests installer can force
   creating InnoDB tables, so that we can use transactions to revert the database
   to its initial state after each test
 * Add inflation support for java.util.zip.Deflater in WP_Http_Encoding::compatible_gzinflate()
 * Add magic get/set/isset methods to WP_User to avoid data duplication; standardize
   on WP_User::ID
 * Add pre_ent2ncr filter
 * add_site_option should not update existing options, should return a boolean and
   should only run actions on success
 * Allow get_blog_option(null,…) to hit the cache for the current blog; new return
   values for add_blog_option, update_blog_option, delete_blog_option; don’t set
   the cache in those functions if add/update/delete_option failed
 * Allow ‘id’ to work in get_bookmarks(); add link_notes even though such sorting
   is a bad idea
 * Allow sorting by id in get_bookmarks()
 * Allow the text parameter in wp_trim_excerpt() to be omitted altogether, instead
   of requiring a blank string
 * Automatically set ‘compare’ => ‘IN’ in WP_Meta_Query::get_sql() when the meta
   value is an array
 * Change month dropdown display in date pickers to include month number
 * Completely remove wp_add_script_data()
 * Consolidate update count code into wp_get_update_data()
 * Count only published posts when updating term counts; fire term count updates
   on transition_post_status
 * Deprecate add_contextual_help() for get_current_screen()->add_help_tab()
 * Deprecate favorite_actions(), add_contextual_help(), add_screen_option(), move
   meta_box_prefs() and get_screen_icon() in WP_Screen
 * Deprecate [get_userdatabylogin()](https://codex.wordpress.org/Function_Reference/get_userdatabylogin)
   and [get_user_by_email()](https://codex.wordpress.org/Function_Reference/get_user_by_email)
 * Deprecate media_upload_(image|audio|video|file)(), type_url_form_(image|audio
   |video|file)(); these now wrap wp_media_upload_handler() and wp_media_insert_url_form()
 * Deprecate RSS 0.92 feed and 301 it to the default feed
 * Deprecate screen_options(), screen_layout(), screen_meta()
 * Deprecate wpmu_admin_redirect_add_updated_param() and wpmu_admin_do_redirect()
 * Eliminate verbose rewrite rules for ambiguous rewrite structures, resulting in
   massive performance gains
 * Fix back compat issues with delete_postmeta and deleted_postmeta actions as these
   should be passed the meta ID
 * Fix QTags.closeAllTags(), replace ‘tb’ with ‘ed’ in quicktags,js to make it clear
   it is the editor instance not the toolbar, small comments quick edit fixes
 * Fix typos in documentation
 * Fix wp_update_user() so it doesn’t stomp meta fields
 * Force display_errors to off when WP_DEBUG_DISPLAY == false; technically a backwards
   incompatible change so if you want the passthrough to php.ini (which false used
   to provide) then use WP_DEBUG_DISPLAY === null
 * Harden up [is_user_logged_in()](https://codex.wordpress.org/Function_Reference/is_user_logged_in)
   against empty $current_user instances to prevent PHP Notices on XML-RPC requests
 * Have dbDelta() loop through tables it knows about, rather than loop through a
   potentially expensive and definitely unnecessary SHOW TABLES
 * Improve _wp_menu_output()
 * Improve the parsing of email addresses in wp_mail to re-support RFC2822 nameless“
   <address@…>” style
 * Instantiate some MS variables as objects before using them
 * Introduce ->mysql to allow drop-ins to declare themselves as MySQL and therefore
   allow minimum version checks to still apply
 * Introduce is_main_query() that compares the query object against $wp_the_query
 * Introduce metadata_exists(), WP_User::get_data_by(), WP_User::get(), WP_User::
   has_prop(). Don’t fill user objects with meta
 * Introduce new hooks, registered_post_type for [register_post_type](https://codex.wordpress.org/Function_Reference/register_post_type),
   and registered_taxonomy for [register_taxonomy](https://codex.wordpress.org/Function_Reference/register_taxonomy)
 * Introduce register_meta(), get_metadata_by_mid(), and *_post_meta capabilities
 * Introduce wp_allowed_protocols() for use in wp_kses() and esc_url()
 * Introduce wp_cache_incr() and wp_cache_decr()
 * Introduce WP_Dependencies::get_data() method, change scripts and styles priority
   to follow the “natural” order in HTML, i.e. the last one wins
 * Introduce wp_get_db_schema() for retrieving various flavors of db schema; eliminates
   need to use global; allows multiple calls to wpmu_create_blog()
 * Introduce wp_no_robots() and call it for pages that should never be indexed, 
   regardless of blog privacy settings
 * Introduce wp_suspend_cache_addition() to allow reduced memory usage when cache
   additions aren’t useful
 * Make check_theme_switched() run an action so plugins and themes authors can avoid
   losing widgets when switching themes
 * Optimise [get_term](https://codex.wordpress.org/Function_Reference/get_term) 
   to not query for term_id = 0 and improve the prepared query to use %d for the
   term_id
 * Optimize parse_request for the home page
 * Performance improvement for [wp_list_pluck()](https://codex.wordpress.org/Function_Reference/wp_list_pluck)
 * Properly handle display of Order, Template, and Parent page attributes in Quick/
   Bulk Edit
 * Properly handle nested arrays in wp_list_filter()
 * Recognize urls that start with a question mark as relative urls that do not require
   a scheme to be prepended
 * Refactor Quicktags
 * Remove return by ref from [get_role()](https://codex.wordpress.org/Function_Reference/get_role)
 * Remove support for <link rel=start>, end, up, and index. These rel=”” values 
   have been dropped by the HTML Working Group
 * Remove the old root feed files, but don’t add these files to old_files to leave
   them on existing installs
 * Require show_ui rather than public for a taxonomy’s parent post type
 * Rework [get_hidden_meta_boxes()](https://codex.wordpress.org/Function_Reference/get_hidden_meta_boxes)
   to leverage a full WP_Screen object; prevents custom post types from having their
   explicitly supported meta boxes being hidden by default
 * Set up the post global variable in the comment feed loops so that any calls to
   post related template tags work correctly
 * Store screen help and options as static data against WP_Screen; individual screen
   objects no longer hold data it can’t re-generate on construction or otherwise
   fetch; convert_to_screen() now returns a WP_Screen object; various globals are
   gone; introduces WP_Screen::get_option(); allows for a formal factory to be introduced
   later
 * Support an array or comma-seperated list of excluded category IDs in get_adjacent_post()
 * Support for using [wp_enqueue_script()](https://codex.wordpress.org/Function_Reference/wp_enqueue_script)
   and [wp_enqueue_style()](https://codex.wordpress.org/Function_Reference/wp_enqueue_style)&
   n bsp;in the HTML body; all scripts and styles are added in the footer
 * Sync pomo library with the current GlotPress version
 * Turn delete_meta() , get_post_meta_by_id(), update_meta(), delete_post_meta_by_key()
   into wrappers around the [Metadata API](https://codex.wordpress.org/Metadata_API);
   add back compat *_postmeta actions to Metadata API
 * Turn [is_blog_user()](https://codex.wordpress.org/WPMU_Functions/is_blog_user)
   into a convenience wrapper around get_blogs_of_user(); fixes is_blog_user() for
   blog prefixes that do not contain a blog ID
 * Update blog last_updated time only on publish_post; both private_to_published
   and publish_phone are overly broad and otherwise redundant
 * Update jQuery to 1.7.1
 * Update jQuery UI to 1.8.16
 * Update Plupload to 1.5.1.1
 * Update quicktags.js (HTML editor)
 * Update TinyMCE to 3.4.5
 * Use add_option() method, introduce add_option_context() method for adding specific
   text above the screen options
 * Use [get_template_directory()](https://codex.wordpress.org/Function_Reference/get_template_directory)
   instead of TEMPLATEPATH in Twentys Ten and Eleven
 * Use json_encode() for adding script data (formerly l10n); add the same functionality
   to WP_Styles for adding inline css after a stylesheet has been outputted
 * Use wp_print_scripts() in install.php
 * Various PHPdoc updates including: for all_items, menu_name, WP_List_Table::views(),
   cache.php, get_option(), wpdb::prepare(), get_template_part(), esc_url(), get_meta_sql(),
   WP_Screen, WP_Http_Encoding::compatible_gzinflate(), zeroise(), wp_add_script_before(),
   wp_editor()
 * WP_Filesystem_*::mkdir() untrailingslash path consistently, don’t waste time 
   attempting to create an “empty” path

First published

May 19, 2019

Last updated