Summary of changes in WordPress 3.4
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.
- 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
- 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()
- 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