Title: 3.9.0 | Developer.WordPress.org

---

# New and updated in 3.9.0

Functions

Hooks

Classes

Methods

 * hook[theme_{$post_type}_templates](https://developer.wordpress.org/reference/hooks/theme_post_type_templates/)
 * Filters list of page templates for a theme.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/theme_post_type_templates/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/theme_post_type_templates/#uses)
   | Source: [wp-includes/class-wp-theme.php:1434](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wp-theme.php#L1434-L1434)
 * hook[wp_maybe_auto_update](https://developer.wordpress.org/reference/hooks/wp_maybe_auto_update/)
 * Fires during wp_cron, starting the auto-update process.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_maybe_auto_update/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_maybe_auto_update/#uses)
   | Source: [wp-includes/update.php:337](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/update.php#L337-L337)
 * hook[resetpass_form](https://developer.wordpress.org/reference/hooks/resetpass_form/)
 * Fires following the ‘Strength indicator’ meter in the user password reset form.
 * Used by [0 functions](https://developer.wordpress.org/reference/hooks/resetpass_form/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/resetpass_form/#uses)
   | Source: [wp-login.php:1072](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-login.php#L1072-L1072)
 * function[get_theme_feature_list()](https://developer.wordpress.org/reference/functions/get_theme_feature_list/)
 * Retrieves list of WordPress theme features (aka theme tags).
 * Used by [3 functions](https://developer.wordpress.org/reference/functions/get_theme_feature_list/#used-by)
   | Uses [6 functions](https://developer.wordpress.org/reference/functions/get_theme_feature_list/#uses)
   | Source: [wp-admin/includes/theme.php:314](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/theme.php#L314-L412)
 * method[WP_Upgrader_Skin::decrement_update_count()](https://developer.wordpress.org/reference/classes/wp_upgrader_skin/decrement_update_count/)
 * Outputs JavaScript that calls function to decrement the update counts.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/wp_upgrader_skin/decrement_update_count/#used-by)
   | Uses [1 function](https://developer.wordpress.org/reference/classes/wp_upgrader_skin/decrement_update_count/#uses)
   | Source: [wp-admin/includes/class-wp-upgrader-skin.php:242](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-wp-upgrader-skin.php#L242-L269)
 * function[heartbeat_autosave()](https://developer.wordpress.org/reference/functions/heartbeat_autosave/)
 * Performs autosave with heartbeat.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/heartbeat_autosave/#used-by)
   | Uses [4 functions](https://developer.wordpress.org/reference/functions/heartbeat_autosave/#uses)
   | Source: [wp-admin/includes/misc.php:1350](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/misc.php#L1350-L1376)
 * hook[attachment_thumbnail_args](https://developer.wordpress.org/reference/hooks/attachment_thumbnail_args/)
 * Filters the parameters for the attachment thumbnail creation.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/attachment_thumbnail_args/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/attachment_thumbnail_args/#uses)
   | Source: [wp-admin/includes/image.php:660](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/image.php#L660-L660)
 * hook[wp_upgrade](https://developer.wordpress.org/reference/hooks/wp_upgrade/)
 * Fires after a site is fully upgraded.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_upgrade/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_upgrade/#uses)
   | Source: [wp-admin/includes/upgrade.php:699](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/upgrade.php#L699-L699)
 * hook[wp_install](https://developer.wordpress.org/reference/hooks/wp_install/)
 * Fires after a site is fully installed.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_install/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_install/#uses)
   | Source: [wp-admin/includes/upgrade.php:152](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/upgrade.php#L152-L152)
 * function[wp_autosave()](https://developer.wordpress.org/reference/functions/wp_autosave/)
 * Saves a post submitted with XHR.
 * Used by [1 function](https://developer.wordpress.org/reference/functions/wp_autosave/#used-by)
   | Uses [10 functions](https://developer.wordpress.org/reference/functions/wp_autosave/#uses)
   | Source: [wp-admin/includes/post.php:2147](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/post.php#L2147-L2187)
 * function[wp_ajax_query_themes()](https://developer.wordpress.org/reference/functions/wp_ajax_query_themes/)
 * Handles getting themes from themes_api() via AJAX.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/wp_ajax_query_themes/#used-by)
   | Uses [23 functions](https://developer.wordpress.org/reference/functions/wp_ajax_query_themes/#uses)
   | Source: [wp-admin/includes/ajax-actions.php:3616](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/ajax-actions.php#L3616-L3737)
 * function[wp_ajax_update_widget()](https://developer.wordpress.org/reference/functions/wp_ajax_update_widget/)
 * Handles updating a widget via AJAX.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/wp_ajax_update_widget/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/functions/wp_ajax_update_widget/#uses)
   | Source: [wp-admin/includes/ajax-actions.php:2460](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/ajax-actions.php#L2460-L2463)
 * function[attachment_id3_data_meta_box()](https://developer.wordpress.org/reference/functions/attachment_id3_data_meta_box/)
 * Displays fields for ID3 data.
 * Used by [0 functions](https://developer.wordpress.org/reference/functions/attachment_id3_data_meta_box/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/functions/attachment_id3_data_meta_box/#uses)
   | Source: [wp-admin/includes/meta-boxes.php:1497](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/meta-boxes.php#L1497-L1515)
 * method[Custom_Image_Header::ajax_header_add()](https://developer.wordpress.org/reference/classes/custom_image_header/ajax_header_add/)
 * Given an attachment ID for a header image, updates its “last used” timestamp 
   to now.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/custom_image_header/ajax_header_add/#used-by)
   | Uses [7 functions](https://developer.wordpress.org/reference/classes/custom_image_header/ajax_header_add/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1456](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1456-L1473)
 * method[Custom_Image_Header::ajax_header_remove()](https://developer.wordpress.org/reference/classes/custom_image_header/ajax_header_remove/)
 * Given an attachment ID for a header image, unsets it as a user-uploaded header
   image for the active theme.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/custom_image_header/ajax_header_remove/#used-by)
   | Uses [7 functions](https://developer.wordpress.org/reference/classes/custom_image_header/ajax_header_remove/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1484](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1484-L1501)
 * method[Custom_Image_Header::customize_set_last_used()](https://developer.wordpress.org/reference/classes/custom_image_header/customize_set_last_used/)
 * Updates the last-used postmeta on a header image attachment after saving a new
   header image via the Customizer.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/custom_image_header/customize_set_last_used/#used-by)
   | Uses [2 functions](https://developer.wordpress.org/reference/classes/custom_image_header/customize_set_last_used/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1510](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1510-L1527)
 * method[Custom_Image_Header::get_default_header_images()](https://developer.wordpress.org/reference/classes/custom_image_header/get_default_header_images/)
 * Gets the details of default header images if defined.
 * Used by [1 function](https://developer.wordpress.org/reference/classes/custom_image_header/get_default_header_images/#used-by)
   | Uses [4 functions](https://developer.wordpress.org/reference/classes/custom_image_header/get_default_header_images/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1536](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1536-L1571)
 * method[Custom_Image_Header::get_uploaded_header_images()](https://developer.wordpress.org/reference/classes/custom_image_header/get_uploaded_header_images/)
 * Gets the previously uploaded header images.
 * Used by [2 functions](https://developer.wordpress.org/reference/classes/custom_image_header/get_uploaded_header_images/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/classes/custom_image_header/get_uploaded_header_images/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1580](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1580-L1592)
 * method[Custom_Image_Header::get_header_dimensions()](https://developer.wordpress.org/reference/classes/custom_image_header/get_header_dimensions/)
 * Calculates width and height based on what the currently selected theme supports.
 * Used by [2 functions](https://developer.wordpress.org/reference/classes/custom_image_header/get_header_dimensions/#used-by)
   | Uses [3 functions](https://developer.wordpress.org/reference/classes/custom_image_header/get_header_dimensions/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1270](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1270-L1311)
 * method[Custom_Image_Header::create_attachment_object()](https://developer.wordpress.org/reference/classes/custom_image_header/create_attachment_object/)
 * Creates an attachment ‘object’.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/custom_image_header/create_attachment_object/#used-by)
   | Uses [5 functions](https://developer.wordpress.org/reference/classes/custom_image_header/create_attachment_object/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1323](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1323-L1342)
 * method[Custom_Image_Header::insert_attachment()](https://developer.wordpress.org/reference/classes/custom_image_header/insert_attachment/)
 * Inserts an attachment and its metadata.
 * Used by [2 functions](https://developer.wordpress.org/reference/classes/custom_image_header/insert_attachment/#used-by)
   | Uses [4 functions](https://developer.wordpress.org/reference/classes/custom_image_header/insert_attachment/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1353](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1353-L1379)
 * hook[wp_header_image_attachment_metadata](https://developer.wordpress.org/reference/hooks/wp_header_image_attachment_metadata/)
 * Filters the header image attachment metadata.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/wp_header_image_attachment_metadata/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/wp_header_image_attachment_metadata/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1374](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1374-L1374)
 * method[Custom_Image_Header::ajax_header_crop()](https://developer.wordpress.org/reference/classes/custom_image_header/ajax_header_crop/)
 * Gets attachment uploaded by Media Manager, crops it, then saves it as a new object.
   Returns JSON-encoded object details.
 * Used by [0 functions](https://developer.wordpress.org/reference/classes/custom_image_header/ajax_header_crop/#used-by)
   | Uses [15 functions](https://developer.wordpress.org/reference/classes/custom_image_header/ajax_header_crop/#uses)
   | Source: [wp-admin/includes/class-custom-image-header.php:1387](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/class-custom-image-header.php#L1387-L1445)
 * function[add_theme_support()](https://developer.wordpress.org/reference/functions/add_theme_support/)
 * Registers theme support for a given feature.
 * Used by [12 functions](https://developer.wordpress.org/reference/functions/add_theme_support/#used-by)
   | Uses [7 functions](https://developer.wordpress.org/reference/functions/add_theme_support/#uses)
   | Source: [wp-includes/theme.php:2702](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/theme.php#L2702-L2952)
 * hook[pre_set_theme_mod_{$name}](https://developer.wordpress.org/reference/hooks/pre_set_theme_mod_name/)
 * Filters the theme modification, or ‘theme_mod’, value on save.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/pre_set_theme_mod_name/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/pre_set_theme_mod_name/#uses)
   | Source: [wp-includes/theme.php:1124](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/theme.php#L1124-L1124)
 * hook[determine_current_user](https://developer.wordpress.org/reference/hooks/determine_current_user/)
 * Filters the current user.
 * Used by [1 function](https://developer.wordpress.org/reference/hooks/determine_current_user/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/determine_current_user/#uses)
   | Source: [wp-includes/user.php:3786](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/user.php#L3786-L3786)
 * hook[theme_page_templates](https://developer.wordpress.org/reference/hooks/theme_page_templates/)
 * Filters list of page templates for a theme.
 * Used by [0 functions](https://developer.wordpress.org/reference/hooks/theme_page_templates/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/hooks/theme_page_templates/#uses)
   | Source: [wp-includes/class-wp-theme.php:1057](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wp-theme.php#L1057-L1057)
 * method[WP_Query::get()](https://developer.wordpress.org/reference/classes/wp_query/get/)
 * Retrieves the value of a query variable.
 * Used by [6 functions](https://developer.wordpress.org/reference/classes/wp_query/get/#used-by)
   | Uses [0 functions](https://developer.wordpress.org/reference/classes/wp_query/get/#uses)
   | Source: [wp-includes/class-wp-query.php:1862](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wp-query.php#L1862-L1868)
 * function[get_query_var()](https://developer.wordpress.org/reference/functions/get_query_var/)
 * Retrieves the value of a query variable in the WP_Query class.
 * Used by [33 functions](https://developer.wordpress.org/reference/functions/get_query_var/#used-by)
   | Uses [1 function](https://developer.wordpress.org/reference/functions/get_query_var/#uses)
   | Source: [wp-includes/query.php:27](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/query.php#L27-L30)
 * function[wp_normalize_path()](https://developer.wordpress.org/reference/functions/wp_normalize_path/)
 * Normalizes a filesystem path.
 * Used by [23 functions](https://developer.wordpress.org/reference/functions/wp_normalize_path/#used-by)
   | Uses [1 function](https://developer.wordpress.org/reference/functions/wp_normalize_path/#uses)
   | Source: [wp-includes/functions.php:2186](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/functions.php#L2186-L2207)

1 [2](https://developer.wordpress.org/reference/since/3.9.0/page/2/?output_format=md)
[3](https://developer.wordpress.org/reference/since/3.9.0/page/3/?output_format=md)…
[5](https://developer.wordpress.org/reference/since/3.9.0/page/5/?output_format=md)

 [Next Page](https://developer.wordpress.org/reference/since/3.9.0/page/2/?output_format=md)