By Adam Pieniazek

Summary of changes in WordPress 4.0

February 24th, 2015 in Upgrade 0 comments

Last time we reviewed changes for WordPress 3.9. In this post we’ll break down the changes in WordPress 4.0. This release brought about a new media library UI and improvements to content editing screens. For us, the biggest changes are a Customizer Panels API and updates to external libraries. Improvements were also made to the orderby field in WP_Query. Additional magic methods were added to a number of classes such as WP_Error, WP_Ajax_Response, WP_Query and others

Changes

  • Added a src parameter to the embed shortcode
  • Trigger _doing_it_wrong() when a registered post type or taxonomy slug is too long (20 characters max)
  • Ensure custom post types nested under top-level menu items get the proper classes
  • Forces an autosave on switch from Visual to Text editor
  • Fix get_the_ID() not checking for a proper post object
  • Leverage iframe sandboxing for audio and video, allowing arbitrary scripts to be loaded

New features

New Filters

  • attach_session_information
  • customize_control_active
  • human_time_diff
  • oembed_remote_get_args
  • run_wptexturize
  • session_token_manager
  • wp_editor_settings
  • wp_embed_handler_youtube
  • wp_title_parts

WordPress 4.0.1 was also reviewed but contained only bug fixes and security hardening patches and is not summarized in this post.

Tagged

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.

Changes

  • 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

Deprecated

  • 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.

Tagged

Summary of changes in WordPress 3.8

December 9th, 2014 in Upgrade 0 comments

Following up on the summary of changes for WordPress 3.7 we now take a look at WordPress 3.8. A new admin design and new Twenty Fourteen theme are the huge new components of WP 3.8. Responsiveness is a huge part of the design of both. On the developer side we don’t see too many new features or changes.

A few helpful new features include has_post_format, better background image support, a slew of bug fixes related to taxonomies and a few other bug fixes. Otherwise this version was mostly focused on pushing out the new admin design and 2014 theme.

Changes

  • Better custom background theme support defaults, can now specify ‘default-repeat’, ‘default-position-x’, and ‘default-attachment’ arguments for background images.
  • Allow passing false for the meta_box_cb argument in register_taxonomy() to turn off the meta box display entirely
  • Make it easier to target video shortcodes by adding a wp-video class to the parent container
  • Fix bug where top-level categories were only redirecting if they had no children
  • Fix bug in wp_get_object_terms() where returned were strings not integers
  • Fix a bug where passing a null value to meta_query resulted in wonkiness with the comparison operator
  • Fix a bug where menus could still be assigned to a non-existent theme location

New features

  • has_post_format
  • A $taxonomy argument was added to each of the adjacent post functions.
  • Introduce WP_Screen::remove_option()
  • Introduce WP_Screen::remove_options()
  • Introduce WP_Screen::get_options()

New Filters

WordPress 3.8.1, 3.8.2, 3.8.3, 3.8.4 and 3.8.5 were reviewed as well but contained only bug fixes and security hardening patches and are not summarized in this post.

Tagged

Summary of changes in WordPress 3.7

December 9th, 2014 in Upgrade 0 comments

As we prepare for another round of WordPress upgrades we’ll be summarizing the changes between WordPress versions here, focusing on changes relevant to our environment. As discussed in the first of these posts, summaries are

broken down into “changes” and “new features”. Changes are any deprecated pieces of code or changes to how a piece of code functions. New features are self-explanatory. For our purposes, the list of changes is of greater importance to ensure nothing breaks.

The next release beyond our current installation is WordPress 3.7. The big change with WP 3.7 is a focus on plugin-led development, meaning WP developers will focus on adding features via plugins instead of within core. The other huge change is the addition of automatic upgrades. Obviously in our environment we do not want any updates downloaded and installed automatically so disabling this feature is important.

WP 3.7 also brings improvements to search results claiming more relevance in results than before. Additional options for querying posts by date is one of the biggest additions along with the new filters and functions listed here. Below are some highlighted changes from WordPress 3.7 that are most relevant to us. Please keep in mind that this list is not all-encompassing and thus you should still review the WordPress 3.7 Codex for the full list of all changes and additions.

Changes

  • Advanced Date Queries for posts now includes date ranges, older/newer than options, and more (See date_query under WP_Query)
  • Multisite now has wp_get_sites() to list all sites on the network
  • Actually limit password-protected post passwords to the 20-character limit
  • Trim leading and trailing spaces from passwords when saving
  • Fix terms with a post count of 0 returning if ‘hide_empty’ is true.
  • Fix issue with deleting terms shared across taxonomies from deleting associated nav menus
  • Make is_tag() accept a term-id, term-name, term-slug or an array of id’s, names and slugs
  • meta_box_cb callback for register_taxonomy()
  • description__like for get_terms()
  • show_in_menu for register_taxonomy()
  • Convert all get_category() calls to use get_terms()

New features

  • WP_Query::stopwords property
  • WP_Query::parse_search() method
  • WP_Query::parse_search_terms() method
  • WP_Query::get_search_stopwords() method
  • WP_Query::reset_postdata() method
  • author__in and author__not_in for WP_Query
  • WP_Http_Streams class
  • WP_Http::handle_redirects() method
  • WP_Http::is_ip_address() method
  • WP_Meta_Query::get_cast_for_type() method
  • unregister_taxonomy_for_object_type()
  • got_url_rewrite()
  • get_previous_post_link()
  • get_next_post_link()
  • get_adjacent_post_link()
  • wp_using_ext_object_cache()
  • is_main_network() template tag
  • verify_file_md5()
  • wp_extract_urls()
  • __return_empty_string()
  • mbstring_binary_safe_encoding()
  • reset_mbstring_encoding()
  • get_post_type_archive_template()

New Filters

  • wp_count_attachments
  • bulk_post_updated_messages
  • got_url_rewrite
  • post_password_expires
  • img_caption_shortcode_width
  • ajax_query_attachments_args
  • months_dropdown_results
  • populate_network_meta
  • wp_link_query_args
  • wp_link_query
  • wp_audio_shortcode_override
  • wp_video_shortcode_override
  • wp_count_posts
  • wp_search_stopwords
  • posts_search_orderby
  • flush_rewrite_rules_hard

WordPress 3.7.1, 3.7.2, 3.7.3, 3.7.4 and 3.7.5 were reviewed as well but contained only bug fixes and security hardening patches and are not summarized in this post.

Tagged

Summary of changes in WordPress 3.6

October 16th, 2013 in Upgrade 0 comments

We continue our series of WordPress change summaries with WordPress 3.6. For a brief introduction to these summaries, view the change summary post for WordPress 3.2.

The latest version of WordPress [ for now, WP 3.7 is right around the corner ] introduced a slew of developer focused changes, including a ton of new functions mostly related to media management. The biggest relevant changes are in improvements to Revision Management both on the user side with an improved UI and on the backend with improved handling of revisions. The other big change in WP 3.6 is the addition of an Audio and Video API with a built-in player for both. The API includes access to image and video metadata as well as a slew of new functions and shortcodes.

A few other changes we might want to investigate further include the addition of an in-line login for expired sessions [ make sure it still works with WebLogin ], a filter for revisions allowing sites to set different revision numbers [ might be useful on news/magazine style sites ] and two new shortcode functions that will help determine if a shortcode is in use.

Changes

  • Each author now has their own autosave stream, which stores things locally as well as on the server (so much harder to lose something) and there’s an interface for taking over editing of a post.
  • Revamped Revisions save every change and the new interface allows you to scroll easily through changes to see line-by-line who changed what and when.
  • You can now choose HTML5 markup for things like comment and search forms, and comment lists.
  • Better filters for how revisions work, so you can store a different amount of history for different post types.
  • In-line login following expired sessions
  • Filters for revisions, allowing you to set the number of revisions ad hoc instead of only via a define.
  • Search content for shortcodes with has_shortcode() and adjust shortcode attributes with a new filter.
  • Automatically esc_url() the URL echoed by the_permalink()
  • Allow developers to specify an Accept-Encoding header in WP_Http::accept_encoding()
  • The Revision Management UI saw significant improvement
  • Shortcode attributes can now be filtered via shortcode_atts_$shortcode hook
  • Better Audio/Video support in Core
  • Add the ability to use HTML5 input types in the comment form
  • Redirect after save on options-permalink.php to ensure permalinks are fully flushed

Deprecations

  • The ability to change post formats was removed from Quick Edit
  • Deprecate wp_convert_bytes_to_hr() in favor of size_format()
  • Deprecate get_user_id_from_string() in favor of get_user_by() where `$field` is ’email’ or ‘login’
  • Deprecate wpdb::escape() in favor of wpdb::prepare() or esc_sql()

New features

  • Added wp_audio_shortcode() and wp_video_shortcode()
  • Introduce wp_add_id3_tag_data()
  • Introduce wp_read_video_metadata()
  • Introduce wp_read_audio_metadata()
  • Introduce wp_mediaelement_fallback()
  • Introduce wp_get_audio_extensions()
  • Introduce wp_get_video_extensions()
  • Introduce wp_embed_handler_audio()
  • Introduce wp_embed_handler_video()
  • Introduce get_attached_media()
  • Introduce get_post_galleries()
  • Introduce get_post_galleries_images()
  • Introduce get_post_gallery()
  • Introduce get_post_gallery_images()
  • Introduce wp_post_revision_title_expanded()
  • Introduce wp_revisions_enabled()
  • Introduce wp_revisions_to_keep()
  • Introduce paginate_content()
  • Introduce get_paged_content()
  • Introduce shortcode_exists()
  • Introduce has_shortcode()
  • Introduce wp_remove_object_terms() and wp_add_object_terms()
  • Introduce wp_nav_menu_disabled_check()
  • Introduce wp_nav_menu_update_menu_items()
  • Introduce do_accordion_sections()
  • Introduce wp_slash()and wp_unslash()
  • Introduce wp_auth_check_load()
  • Introduce wp_auth_check()

New Filters

  • Add self_link in self_link()
  • Add get_comments_link in get_comments_link()
  • Add comments_link_feed in comments_link_feed()
  • Add comment_link in get_comment_link()
  • Add nav_menu_link_attributes in Walker_Nav_Menu::start_el()
  • Add wp_revisions_to_keep in wp_revisions_to_keep()
  • Add wp_link_pages in wp_link_pages()
  • Add search_form_format in get_search_form()
  • Add user_search_columns in WP_User_Query::prepare_query()
  • Add wp_http_accept_encoding in WP_Http_Encoding::accept_encoding()
  • Add widget_meta_poweredby in WP_Widget_Meta::widget()

Version 3.6.1 was also reviewed but only contained bug fixes and a few security patches and is not summarized here.

Tagged

Summary of changes in WordPress 3.5

October 16th, 2013 in Upgrade 0 comments

For a brief introduction to these summaries, view the change summary post for WordPress 3.2.

WordPress 3.5 contains a lot of changes relevant to our environment here. From a streamlined media manager powered by a Image Editing API built on ImageMagick and GD to a high resolution [ Retina ] wp-admin. Two multi-site updates include a faster switch_to_blog and the ability to install multi-site WP in a sub-directory. Underscore and Backbone are now also bundled with WP 3.5.

New functions added in WP 3.5 include a couple cache, json, and more multisite functions. These are listed below.

We continue our series of WordPress change summaries with WordPress 3.5.

Changes

  • Welcome Panel and accompanying screen option removable via the welcome_panel hook
  • Allow passing stdClass and WP_User to wp_insert_user() and wp_update_user()
  • Meta queries now support querying for objects without a particular meta key
  • Post objects are now instances of a WP_Post class, which improves performance and caching
  • Fix the matching in is_email_address_unsafe(), which was too aggressive
  • No markup is output if wp_nav_menu() has no menu items
  • When reassigning posts and links during user deletion, clear the post and link caches
  • Switch to .min for compressed JS and CSS files, e.g. .js becomes .min.js, .dev.js becomes .js

Deprecations

  • Soft-deprecated CUSTOM_TAGS in favor of wp_kses_allowed_html(), adds support for rel attributes
  • Deprecate sticky_class() in favor of post_class()
  • Deprecate wp_cache_reset()
  • Deprecate wp_create_thumbnail()
  • Deprecate image_save_pre filter, which filters a GD Resource, for image_editor_save_pre, which filters a WP_Image_Editor object
  • Deprecate wp_save_image_file filter, which filters a GD Resource, for wp_save_image_editor_file, which filters a WP_Image_Editor object
  • Deprecate image_edit_before_change filter, which filters a GD Resource, for image_edit_before_change, which filters a WP_Image_Editor object
  • Deprecate jpeg_quality filter for wp_editor_set_quality, or WP_Image_Editor::set_quality() on an individual image, which sets compression quality for any supported format
  • Deprecate wp_load_image() in favor of wp_get_image_editor()
  • Deprecate image_resize in favor of WP_Image_Editor::resize()
  • Deprecate gd_edit_image_support() in favor of wp_image_editor_supports()

New features

New Filters

  • Add cron_request for filtering the cron_url in wp_remote_post()
  • Add login_body_class filter to login_header()
  • Add media_view_strings and media_view_settings filters. Use media_view_strings to filter ‘Insert into post’ button text
  • Add post_type_labels_{$post_type} to filter get_post_type_labels()
  • Add domain_exists filter for domain_exists()
  • Add restrict_manage_comments hook to comments list table for better filtering capability
  • Add wp_get_update_data filter making it easier for plugins to modify update count

Version 3.5.1 and Version 3.5.2 were also reviewed. These two releases contained bug fixes and security patches. The most noteworthy of these changes are listed below:

  • Editor: Prevent certain HTML elements from being unexpectedly removed or modified in rare cases.
  • Networks: Suggest proper rewrite rules when creating a new network.
  • Prevent scheduled posts from being stripped of certain HTML, such as video embeds, when they are published.
  • Prevention of a denial of service attack, affecting sites using password-protected posts.
  • Avoid disclosing a full file path when a upload fails.

Tagged

Summary of changes in WordPress 3.4

October 1st, 2013 in Upgrade 0 comments

In this post we’ll summarize the changes relevant to our environment introduced in WordPress 3.4. For a brief introduction to these summaries, view the change summary post for WordPress 3.2.

The Grant Green release of WordPress brings a slew of theme and library updates, the biggest among them being the Theme customizer API. When used, it provides users an easy way to change visual aspects of a theme without diving into any code. Other nice user facing additions include HTML support in image captions, Twitter data via oEmbed, dragging on mobile devices [ via the jQuery UI Touch Punch plugin ] and improvements to Custom Headers.

This release also introduces a few database changes, none of which appear to have an impact on us but are listed below because database schema changes are scary. Other new additions are a WP_Theme class and add/remove/reset/get methods for the Custom_Image_Header class. WordPress will now also use a randomly generated database secret key if one is not set in wp-config. Of particular note is that “The secret key in the database is randomly generated and will be appended to the secret key that is in wp-config.php file in some instances.”

One final update of note is that WordPress no longer uses the is_iphone global to determine if the visitor is using a mobile device. Instead we now have the less biased and more inclusive wp_is_mobile() function.

Changes

  • Don’t allow empty database prefix for multisite
  • Fix the return value of get_theme_root() when the theme root is outside of WP_CONTENT_DIR, thus making it absolute rather than the typical relative theme root; make get_theme_root_uri() tolerate an absolute path for a theme root; it will now make an attempt to find a corresponding URL for absolute paths as well.
  • Repurpose wp_die() for ajax responses
  • Update add_permastruct() to allow more control over WP_Rewrite::generate_rewrite_rules()
  • Introduce ‘relative’ scheme to return only the paths for home_url, site, admin, network_, and get_ variants
  • Introduce get_page_template_slug( $id = null ) to return a page’s template (like “showcase.php”); returns false if post ID is not a page, and an empty string for the default page template; use the function across core
  • Move Options, Settings, and Transient functions from wp-includes/functions.php to wp-includes/option.php
  • Database schema change: Change ‘post_content_filtered’ to longtext in ‘wp_posts’ table

Deprecations

  • Database schema change: Drop ‘comment_approved’ index from ‘wp_comments’ table
  • Database schema change: Remove ‘blog_id’ column from ‘wp_options’ table
  • Deprecate add_custom_background() in favor of add_theme_support( ‘custom-background’ )
  • Deprecate add_custom_image_header() in favor of add_theme_support( ‘custom-header’ )
  • Deprecate get_theme_data() in favor of wp_get_theme()
  • Remove show_last_update, include_last_update_time, and show_date code parameters from wp_list_categories(), wp_dropdown_categories()

New features

  • HTML support has been added to image caption field
  • Create WP_Customize_Control to separate the process of rendering a control from fetching, previewing, and saving its value. See also Otto’s post on extending this class
  • Add WP_Screen methods get_help_tabs(), get_help_tab( $id ), get_help_sidebar(). Store help tabs by tab ID, not numeric key; allows proper removal with remove_help_tab( $id )
  • Introduce $wpdb->delete()
  • Introduce set_header_image(), remove_header_image(), reset_header_image() and get_header_image_data() Custom_Image_Header class methods.
  • Introduce WP_Theme class, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others
  • Introduce term_is_ancestor_of(); finish taxonomy support for wp_insert_category()
  • Introduce wp_is_mobile() and use it instead of $is_iphone global
  • Introduce WP_User::exists()
  • New ‘wp_die_app_handler’ context in wp_die() for APP requests; introduces _scalar_wp_die_handler() as a generic handler that wraps die(), for use by plugins; move deprecated function to the end of the wp-app.php file (same as xmlrpc.php)
  • Refactor WPDB::get_caller() into wp_debug_backtrace_summary() and improve the functionality to provide enhanced context and a standardised default pretty format
  • Add a filter to wp_terms_checklist() that wraps the function’s arguments; mainly designed to allow checked_ontop to be turned off

Version 3.4.1 and Version 3.4.2 were also reviewed and mostly contained a bug fixes and security updates. Of note is that 3.4.1 better handles loading Javascript incorrectly and “Allows for a technique commonly used by plugins to detect a network-wide activation.” Of note in 3.4.2. are “Fixes an issue where a theme may not preview correctly, or its screenshot may not be displayed” and “Prevents improperly sized images from being uploaded as headers from the customizer”.

Tagged

Summary of changes in WordPress 3.3

September 30th, 2013 in Upgrade 0 comments

We continue our series of WordPress change summaries with WordPress 3.3. For a brief introduction to these summaries, view the change summary post for WordPress 3.2.

Sonny Stitt includes some admin design improvements, better co-editing, and a widget’s state is now kept track of when switching themes. “Under the hood”, WordPress improved the Editor API, added a Screen API for user documention and improved the metadata API. Most excitedly, work was done to the way WordPress handles postnames as permalinks so that they no longer cause huge performance issues.

Other changes include improvements to how WP options functions, a couple new cache related functions, a few new meta hooks and functions along with a bundle of new filters. See the list below for changes and additions relevant to our environment.

Changes

  • Improve cron locking; avoid multiple cron processes looping over the same events
  • 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
  • add_site_option should not update existing options, should return a boolean and should only run actions on success
  • Use add_option() method, introduce add_option_context() method for adding specific text above the screen options
  • Allow current_theme_supports() to be used to check for specific post formats
  • Switch admin menus to flyouts from dropdowns
  • Dissolve wp-admin/network/edit.php
  • Clean up remnants from having negative Post_ID
  • Check for plugin/theme updates every hour when hitting update-core.php, not just themes.php/plugins.php
  • Fix inviting existing users to a site with email confirmation

Deprecations

  • Turn delete_meta() , get_post_meta_by_id(), update_meta(), delete_post_meta_by_key() into wrappers around the Metadata API; add back compat *_postmeta actions to Metadata API
  • Completely remove wp_add_script_data()
  • 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() and 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 wpmu_admin_redirect_add_updated_param() and wpmu_admin_do_redirect()

New features

  • Use the postname permalink structure without a performance penalty!
  • Introduce wp_suspend_cache_addition() to allow reduced memory usage when cache additions aren’t useful
  • Introduce wp_cache_incr() and wp_cache_decr()
  • Introduce is_main_query() that compares the query object against $wp_the_query
  • Introduce ->mysql to allow drop-ins to declare themselves as MySQL and therefore allow minimum version checks to still apply
  • 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, and registered_taxonomy for 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()
  • Add _doing_it_wrong() when a plugin or theme accesses $wp_scripts or $wp_styles too early (also fixes localization)

New filters

  • 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 a filter to 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

Version 3.3.1, Version 3.3.2, and Version 3.3.3 were also reviewed but only contained bug fixes, security patches and external library updates and are not summarized here.

Tagged

Summary of changes in WordPress 3.2

September 26th, 2013 in Upgrade 0 comments

To prepare for our big jump in WordPress versions coming up soon [ from 3.1.4 to 3.6.1 ], we needed to review the changes that have occurred over these 4 versions. Below is a summary of these changes for WordPress 3.2, broken down into “changes” and “new features”. Changes are any deprecated pieces of code or changes to how a piece of code functions. New features are self-explanatory. For our purposes, the list of changes is of greater importance to ensure nothing breaks.

Version 3.2 added a new default theme, a distraction free writing mode and other admin improvements. The major change with 3.2 was an update to the PHP and MySQL requirements, from a minimum of PHP 4.3 & MySQL 4.1.2 to a minimum of PHP 5.2.4 & MySQL 5.0.15. We meet both of these minimum requirements currently so it is not a concern for us. Additionally WordPress dropped support for IE6 in this version. These changes plus improvements to the codebase resulted in better performance and faster page loads.

Below is a list of relevant changes and new features introduced in WordPress 3.2 for developers. The most useful new features include a WP_Meta_Query class similar to WP_Query, a new is_multi_author() template tag, and hooks into wp-admin/update-core.php.

Changes

  • IE6 no longer supported, EOL start for IE7, uses Browse Happy.
  • Show the sticky posts checkbox (“Stick this post to the front page”) Only when author has ‘edit_others_posts’ capability
  • Rename duplicate ‘delete_post’ and ‘deleted_post’ actions to ‘before_delete_post’ and ‘after_delete_post’

New features

  • Themes sub-menu under Appearance [ hide for certain users? ]
  • new is_multi_author() template tag
  • Allow plugins to hook into wp-admin/update-core.php
  • Allow custom author elements such as email
  • Add option_page_capability_$option_page filter
  • Allow taxonomies to be queried by $_GET parameters on non-taxonomy url’s
  • Add a per-post-type nav menu items filter for plugin control
  • Add .ics / text/calendar to the whitelist of allowed file types
  • Add cache_domain argument to get_terms() to allow caching to a unique set of cache buckets; useful when taxonomy queries have been modified via filters and need their own cache space
  • Allow get_pages() to support multiple post statuses
  • Allow WP_Query ‘post_status’ parameter to accept an array, as well as a singular value and comma separated list
  • Introduce WP_Meta_Query and relation support

Version 3.2.1 was also reviewed but only contained a bug fix and is not summarized here.

Tagged