Docs: Improve DocBlocks in wp-includes/theme.php
per the documentation standards.
See #49572. git-svn-id: https://develop.svn.wordpress.org/trunk@48189 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
20e96fa38a
commit
b970deb94a
@ -463,6 +463,7 @@ add_action( 'init', 'wp_sitemaps_get_server' );
|
||||
* Filters formerly mixed into wp-includes.
|
||||
*/
|
||||
// Theme.
|
||||
add_action( 'setup_theme', 'create_initial_theme_features', 0 );
|
||||
add_action( 'wp_loaded', '_custom_header_background_just_in_time' );
|
||||
add_action( 'wp_head', '_custom_logo_header_styles' );
|
||||
add_action( 'plugins_loaded', '_wp_customize_include' );
|
||||
@ -470,7 +471,6 @@ add_action( 'transition_post_status', '_wp_customize_publish_changeset', 10, 3 )
|
||||
add_action( 'admin_enqueue_scripts', '_wp_customize_loader_settings' );
|
||||
add_action( 'delete_attachment', '_delete_attachment_theme_mod' );
|
||||
add_action( 'transition_post_status', '_wp_keep_alive_customize_changeset_dependent_auto_drafts', 20, 3 );
|
||||
add_action( 'setup_theme', 'create_initial_theme_features', 0 );
|
||||
|
||||
// Calendar widget cache.
|
||||
add_action( 'save_post', 'delete_get_calendar_cache' );
|
||||
|
@ -223,7 +223,7 @@ class WP_REST_Themes_Controller extends WP_REST_Controller {
|
||||
*
|
||||
* @since 5.5.0
|
||||
*
|
||||
* @param mixed $support The raw value from {@see get_theme_support()}
|
||||
* @param mixed $support The raw value from get_theme_support().
|
||||
* @param array $args The feature's registration args.
|
||||
* @param string $feature The feature name.
|
||||
* @param WP_REST_Request $request The request object.
|
||||
|
@ -19,13 +19,16 @@
|
||||
* @param array $args {
|
||||
* Optional. The search arguments.
|
||||
*
|
||||
* @type mixed $errors True to return themes with errors, false to return themes without errors, null to return all themes.
|
||||
* Defaults to false.
|
||||
* @type mixed $allowed (Multisite) True to return only allowed themes for a site. False to return only disallowed themes for a site.
|
||||
* 'site' to return only site-allowed themes. 'network' to return only network-allowed themes.
|
||||
* Null to return all themes. Defaults to null.
|
||||
* @type int $blog_id (Multisite) The blog ID used to calculate which themes are allowed.
|
||||
* Defaults to 0, synonymous for the current blog.
|
||||
* @type mixed $errors True to return themes with errors, false to return
|
||||
* themes without errors, null to return all themes.
|
||||
* Default false.
|
||||
* @type mixed $allowed (Multisite) True to return only allowed themes for a site.
|
||||
* False to return only disallowed themes for a site.
|
||||
* 'site' to return only site-allowed themes.
|
||||
* 'network' to return only network-allowed themes.
|
||||
* Null to return all themes. Default null.
|
||||
* @type int $blog_id (Multisite) The blog ID used to calculate which themes
|
||||
* are allowed. Default 0, synonymous for the current blog.
|
||||
* }
|
||||
* @return WP_Theme[] Array of WP_Theme objects.
|
||||
*/
|
||||
@ -102,10 +105,12 @@ function wp_get_themes( $args = array() ) {
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @param string $stylesheet Directory name for the theme. Optional. Defaults to current theme.
|
||||
* @param string $theme_root Absolute path of the theme root to look in. Optional. If not specified, get_raw_theme_root()
|
||||
* is used to calculate the theme root for the $stylesheet provided (or current theme).
|
||||
* @return WP_Theme Theme object. Be sure to check the object's exists() method if you need to confirm the theme's existence.
|
||||
* @param string $stylesheet Optional. Directory name for the theme. Defaults to current theme.
|
||||
* @param string $theme_root Optional. Absolute path of the theme root to look in.
|
||||
* If not specified, get_raw_theme_root() is used to calculate
|
||||
* the theme root for the $stylesheet provided (or current theme).
|
||||
* @return WP_Theme Theme object. Be sure to check the object's exists() method
|
||||
* if you need to confirm the theme's existence.
|
||||
*/
|
||||
function wp_get_theme( $stylesheet = '', $theme_root = '' ) {
|
||||
global $wp_theme_directories;
|
||||
@ -130,7 +135,7 @@ function wp_get_theme( $stylesheet = '', $theme_root = '' ) {
|
||||
* Clears the cache held by get_theme_roots() and WP_Theme.
|
||||
*
|
||||
* @since 3.5.0
|
||||
* @param bool $clear_update_cache Whether to clear the Theme updates cache
|
||||
* @param bool $clear_update_cache Whether to clear the theme updates cache.
|
||||
*/
|
||||
function wp_clean_themes_cache( $clear_update_cache = true ) {
|
||||
if ( $clear_update_cache ) {
|
||||
@ -147,7 +152,7 @@ function wp_clean_themes_cache( $clear_update_cache = true ) {
|
||||
*
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @return bool true if a child theme is in use, false otherwise.
|
||||
* @return bool True if a child theme is in use, false otherwise.
|
||||
*/
|
||||
function is_child_theme() {
|
||||
return ( TEMPLATEPATH !== STYLESHEETPATH );
|
||||
@ -156,11 +161,10 @@ function is_child_theme() {
|
||||
/**
|
||||
* Retrieves name of the current stylesheet.
|
||||
*
|
||||
* The theme name that the administrator has currently set the front end theme
|
||||
* as.
|
||||
* The theme name that is currently set as the front end theme.
|
||||
*
|
||||
* For all intents and purposes, the template name and the stylesheet name are
|
||||
* going to be the same for most cases.
|
||||
* For all intents and purposes, the template name and the stylesheet name
|
||||
* are going to be the same for most cases.
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
@ -360,13 +364,14 @@ function get_template_directory_uri() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve theme roots.
|
||||
* Retrieves theme roots.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @return array|string An array of theme roots keyed by template/stylesheet or a single theme root if all themes have the same root.
|
||||
* @return array|string An array of theme roots keyed by template/stylesheet
|
||||
* or a single theme root if all themes have the same root.
|
||||
*/
|
||||
function get_theme_roots() {
|
||||
global $wp_theme_directories;
|
||||
@ -384,13 +389,14 @@ function get_theme_roots() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a directory that contains themes.
|
||||
* Registers a directory that contains themes.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @param string $directory Either the full filesystem path to a theme folder or a folder within WP_CONTENT_DIR
|
||||
* @param string $directory Either the full filesystem path to a theme folder
|
||||
* or a folder within WP_CONTENT_DIR.
|
||||
* @return bool
|
||||
*/
|
||||
function register_theme_directory( $directory ) {
|
||||
@ -418,14 +424,14 @@ function register_theme_directory( $directory ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Search all registered theme directories for complete and valid themes.
|
||||
* Searches all registered theme directories for complete and valid themes.
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @param bool $force Optional. Whether to force a new directory scan. Defaults to false.
|
||||
* @return array|false Valid themes found
|
||||
* @param bool $force Optional. Whether to force a new directory scan. Default false.
|
||||
* @return array|false Valid themes found on success, false on failure.
|
||||
*/
|
||||
function search_theme_directories( $force = false ) {
|
||||
global $wp_theme_directories;
|
||||
@ -463,9 +469,10 @@ function search_theme_directories( $force = false ) {
|
||||
* @since 3.4.0
|
||||
*
|
||||
* @param bool $cache_expiration Whether to get the cache of the theme directories. Default false.
|
||||
* @param string $cache_directory Directory to be searched for the cache.
|
||||
* @param string $context The class or function name calling the filter.
|
||||
*/
|
||||
$cache_expiration = apply_filters( 'wp_cache_themes_persistently', false, 'search_theme_directories' );
|
||||
|
||||
if ( $cache_expiration ) {
|
||||
$cached_roots = get_site_transient( 'theme_roots' );
|
||||
if ( is_array( $cached_roots ) ) {
|
||||
@ -559,7 +566,7 @@ function search_theme_directories( $force = false ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve path to themes directory.
|
||||
* Retrieves path to themes directory.
|
||||
*
|
||||
* Does not have trailing slash.
|
||||
*
|
||||
@ -602,7 +609,7 @@ function get_theme_root( $stylesheet_or_template = '' ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve URI for themes directory.
|
||||
* Retrieves URI for themes directory.
|
||||
*
|
||||
* Does not have trailing slash.
|
||||
*
|
||||
@ -655,7 +662,7 @@ function get_theme_root_uri( $stylesheet_or_template = '', $theme_root = '' ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the raw theme root relative to the content directory with no filters applied.
|
||||
* Gets the raw theme root relative to the content directory with no filters applied.
|
||||
*
|
||||
* @since 3.1.0
|
||||
*
|
||||
@ -695,7 +702,7 @@ function get_raw_theme_root( $stylesheet_or_template, $skip_cache = false ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Display localized stylesheet link element.
|
||||
* Displays localized stylesheet link element.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*/
|
||||
@ -726,7 +733,7 @@ function locale_stylesheet() {
|
||||
* @global WP_Customize_Manager $wp_customize
|
||||
* @global array $sidebars_widgets
|
||||
*
|
||||
* @param string $stylesheet Stylesheet name
|
||||
* @param string $stylesheet Stylesheet name.
|
||||
*/
|
||||
function switch_theme( $stylesheet ) {
|
||||
global $wp_theme_directories, $wp_customize, $sidebars_widgets;
|
||||
@ -828,8 +835,8 @@ function switch_theme( $stylesheet ) {
|
||||
* But if it doesn't exist, it'll fall back to the latest core default theme that does exist.
|
||||
* Will switch theme to the fallback theme if current theme does not validate.
|
||||
*
|
||||
* You can use the {@see 'validate_current_theme'} filter to return false to
|
||||
* disable this functionality.
|
||||
* You can use the {@see 'validate_current_theme'} filter to return false to disable
|
||||
* this functionality.
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
@ -869,6 +876,7 @@ function validate_current_theme() {
|
||||
/**
|
||||
* If we're in an invalid state but WP_DEFAULT_THEME doesn't exist,
|
||||
* switch to the latest core default theme that's installed.
|
||||
*
|
||||
* If it turns out that this latest core default theme is our current
|
||||
* theme, then there's nothing we can do about that, so we have to bail,
|
||||
* rather than going into an infinite loop. (This is why there are
|
||||
@ -957,7 +965,7 @@ function validate_theme_requirements( $stylesheet ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all theme modifications.
|
||||
* Retrieves all theme modifications.
|
||||
*
|
||||
* @since 3.1.0
|
||||
*
|
||||
@ -981,7 +989,7 @@ function get_theme_mods() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve theme modification value for the current theme.
|
||||
* Retrieves theme modification value for the current theme.
|
||||
*
|
||||
* If the modification name does not exist, then the $default will be passed
|
||||
* through {@link https://www.php.net/sprintf sprintf()} PHP function with
|
||||
@ -1024,7 +1032,7 @@ function get_theme_mod( $name, $default = false ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Update theme modification value for the current theme.
|
||||
* Updates theme modification value for the current theme.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
@ -1054,10 +1062,10 @@ function set_theme_mod( $name, $value ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove theme modification name from current theme list.
|
||||
* Removes theme modification name from current theme list.
|
||||
*
|
||||
* If removing the name also removes all elements, then the entire option will
|
||||
* be removed.
|
||||
* If removing the name also removes all elements, then the entire option
|
||||
* will be removed.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
@ -1081,7 +1089,7 @@ function remove_theme_mod( $name ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove theme modifications option for current theme.
|
||||
* Removes theme modifications option for current theme.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*/
|
||||
@ -1133,7 +1141,7 @@ function display_header_text() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a header image is set or not.
|
||||
* Checks whether a header image is set or not.
|
||||
*
|
||||
* @since 4.2.0
|
||||
*
|
||||
@ -1146,7 +1154,7 @@ function has_header_image() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve header image for custom header.
|
||||
* Retrieves header image for custom header.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
@ -1167,7 +1175,7 @@ function get_header_image() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create image tag markup for a custom header image.
|
||||
* Creates image tag markup for a custom header image.
|
||||
*
|
||||
* @since 4.4.0
|
||||
*
|
||||
@ -1234,7 +1242,7 @@ function get_header_image_tag( $attr = array() ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the image markup for a custom header image.
|
||||
* Displays the image markup for a custom header image.
|
||||
*
|
||||
* @since 4.4.0
|
||||
*
|
||||
@ -1245,13 +1253,13 @@ function the_header_image_tag( $attr = array() ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get random header image data from registered images in theme.
|
||||
* Gets random header image data from registered images in theme.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*
|
||||
* @access private
|
||||
*
|
||||
* @global array $_wp_default_headers
|
||||
* @global array $_wp_default_headers
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
@ -1289,11 +1297,11 @@ function _get_random_header_data() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get random header image url from registered images in theme.
|
||||
* Gets random header image URL from registered images in theme.
|
||||
*
|
||||
* @since 3.2.0
|
||||
*
|
||||
* @return string Path to header image
|
||||
* @return string Path to header image.
|
||||
*/
|
||||
function get_random_header_image() {
|
||||
$random_image = _get_random_header_data();
|
||||
@ -1306,7 +1314,7 @@ function get_random_header_image() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if random header image is in use.
|
||||
* Checks if random header image is in use.
|
||||
*
|
||||
* Always true if user expressly chooses the option in Appearance > Header.
|
||||
* Also true if theme has multiple header images registered, no specific header image
|
||||
@ -1314,7 +1322,8 @@ function get_random_header_image() {
|
||||
*
|
||||
* @since 3.2.0
|
||||
*
|
||||
* @param string $type The random pool to use. any|default|uploaded
|
||||
* @param string $type The random pool to use. Possible values include 'any',
|
||||
* 'default', 'uploaded'. Default 'any'.
|
||||
* @return bool
|
||||
*/
|
||||
function is_random_header_image( $type = 'any' ) {
|
||||
@ -1339,7 +1348,7 @@ function is_random_header_image( $type = 'any' ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Display header image URL.
|
||||
* Displays header image URL.
|
||||
*
|
||||
* @since 2.1.0
|
||||
*/
|
||||
@ -1352,7 +1361,7 @@ function header_image() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the header images uploaded for the current theme.
|
||||
* Gets the header images uploaded for the current theme.
|
||||
*
|
||||
* @since 3.2.0
|
||||
*
|
||||
@ -1400,7 +1409,7 @@ function get_uploaded_header_images() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the header image data.
|
||||
* Gets the header image data.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*
|
||||
@ -1445,7 +1454,7 @@ function get_custom_header() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a selection of default headers to be displayed by the custom header admin UI.
|
||||
* Registers a selection of default headers to be displayed by the custom header admin UI.
|
||||
*
|
||||
* @since 3.0.0
|
||||
*
|
||||
@ -1461,7 +1470,7 @@ function register_default_headers( $headers ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregister default headers.
|
||||
* Unregisters default headers.
|
||||
*
|
||||
* This function must be called after register_default_headers() has already added the
|
||||
* header you want to remove.
|
||||
@ -1488,7 +1497,7 @@ function unregister_default_headers( $header ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a header video is set or not.
|
||||
* Checks whether a header video is set or not.
|
||||
*
|
||||
* @since 4.7.0
|
||||
*
|
||||
@ -1501,7 +1510,7 @@ function has_header_video() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve header video URL for custom header.
|
||||
* Retrieves header video URL for custom header.
|
||||
*
|
||||
* Uses a local video if present, or falls back to an external video.
|
||||
*
|
||||
@ -1536,7 +1545,7 @@ function get_header_video_url() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Display header video URL.
|
||||
* Displays header video URL.
|
||||
*
|
||||
* @since 4.7.0
|
||||
*/
|
||||
@ -1549,7 +1558,7 @@ function the_header_video_url() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve header video settings.
|
||||
* Retrieves header video settings.
|
||||
*
|
||||
* @since 4.7.0
|
||||
*
|
||||
@ -1593,7 +1602,7 @@ function get_header_video_settings() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a custom header is set or not.
|
||||
* Checks whether a custom header is set or not.
|
||||
*
|
||||
* @since 4.7.0
|
||||
*
|
||||
@ -1628,7 +1637,7 @@ function is_header_video_active() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify whether the custom header video is eligible to show on the current page.
|
||||
* Filters whether the custom header video is eligible to show on the current page.
|
||||
*
|
||||
* @since 4.7.0
|
||||
*
|
||||
@ -1640,7 +1649,7 @@ function is_header_video_active() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the markup for a custom header.
|
||||
* Retrieves the markup for a custom header.
|
||||
*
|
||||
* The container div will always be returned in the Customizer preview.
|
||||
*
|
||||
@ -1660,7 +1669,7 @@ function get_custom_header_markup() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Print the markup for a custom header.
|
||||
* Prints the markup for a custom header.
|
||||
*
|
||||
* A container div will always be printed in the Customizer preview.
|
||||
*
|
||||
@ -1681,7 +1690,7 @@ function the_custom_header_markup() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve background image for custom background.
|
||||
* Retrieves background image for custom background.
|
||||
*
|
||||
* @since 3.0.0
|
||||
*
|
||||
@ -1692,7 +1701,7 @@ function get_background_image() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Display background image path.
|
||||
* Displays background image path.
|
||||
*
|
||||
* @since 3.0.0
|
||||
*/
|
||||
@ -1701,7 +1710,7 @@ function background_image() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve value for custom background color.
|
||||
* Retrieves value for custom background color.
|
||||
*
|
||||
* @since 3.0.0
|
||||
*
|
||||
@ -1712,7 +1721,7 @@ function get_background_color() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Display background color value.
|
||||
* Displays background color value.
|
||||
*
|
||||
* @since 3.0.0
|
||||
*/
|
||||
@ -1802,7 +1811,7 @@ body.custom-background { <?php echo trim( $style ); ?> }
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the Custom CSS style element.
|
||||
* Renders the Custom CSS style element.
|
||||
*
|
||||
* @since 4.7.0
|
||||
*/
|
||||
@ -1819,7 +1828,7 @@ function wp_custom_css_cb() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the `custom_css` post for a given theme.
|
||||
* Fetches the `custom_css` post for a given theme.
|
||||
*
|
||||
* @since 4.7.0
|
||||
*
|
||||
@ -1870,7 +1879,7 @@ function wp_get_custom_css_post( $stylesheet = '' ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch the saved Custom CSS content for rendering.
|
||||
* Fetches the saved Custom CSS content for rendering.
|
||||
*
|
||||
* @since 4.7.0
|
||||
*
|
||||
@ -1903,7 +1912,7 @@ function wp_get_custom_css( $stylesheet = '' ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the `custom_css` post for a given theme.
|
||||
* Updates the `custom_css` post for a given theme.
|
||||
*
|
||||
* Inserts a `custom_css` post when one doesn't yet exist.
|
||||
*
|
||||
@ -2003,7 +2012,7 @@ function wp_update_custom_css_post( $css, $args = array() ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add callback for custom TinyMCE editor stylesheets.
|
||||
* Adds callback for custom TinyMCE editor stylesheets.
|
||||
*
|
||||
* The parameter $stylesheet is the name of the stylesheet, relative to
|
||||
* the theme root. It also accepts an array of stylesheets.
|
||||
@ -2061,7 +2070,7 @@ function remove_editor_styles() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve any registered editor stylesheet URLs.
|
||||
* Retrieves any registered editor stylesheet URLs.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*
|
||||
@ -2117,7 +2126,7 @@ function get_editor_stylesheets() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Expand a theme's starter content configuration using core-provided data.
|
||||
* Expands a theme's starter content configuration using core-provided data.
|
||||
*
|
||||
* @since 4.7.0
|
||||
*
|
||||
@ -2833,8 +2842,8 @@ function remove_theme_support( $feature ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Do not use. Removes theme support internally without knowledge of those not used by
|
||||
* themes directly.
|
||||
* Do not use. Removes theme support internally without knowledge of those not used
|
||||
* by themes directly.
|
||||
*
|
||||
* @access private
|
||||
* @since 3.1.0
|
||||
@ -2994,31 +3003,41 @@ function require_if_theme_supports( $feature, $include ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a theme feature for use in {@see add_theme_support}.
|
||||
* Registers a theme feature for use in add_theme_support().
|
||||
*
|
||||
* This does not indicate that the current theme supports the feature, it only describes the feature's supported options.
|
||||
* This does not indicate that the current theme supports the feature, it only describes
|
||||
* the feature's supported options.
|
||||
*
|
||||
* @since 5.5.0
|
||||
*
|
||||
* @see add_theme_support()
|
||||
*
|
||||
* @global $_wp_registered_theme_features
|
||||
*
|
||||
* @param string $feature The name uniquely identifying the feature.
|
||||
* @param array $args {
|
||||
* Data used to describe the theme
|
||||
* Data used to describe the theme.
|
||||
*
|
||||
* @type string $type The type of data associated with this feature. Defaults to 'boolean'.
|
||||
* Valid values are 'string', 'boolean', 'integer', 'number', 'array', and 'object'.
|
||||
* @type boolean $variadic Does this feature utilize the variadic support of {@see add_theme_support()},
|
||||
* or are all arguments specified as the second parameter. Must be used with the "array" type.
|
||||
* @type string $description A short description of the feature. Included in the Themes REST API schema. Intended for developers.
|
||||
* @type string $type The type of data associated with this feature.
|
||||
* Valid values are 'string', 'boolean', 'integer',
|
||||
* 'number', 'array', and 'object'. Defaults to 'boolean'.
|
||||
* @type boolean $variadic Does this feature utilize the variadic support
|
||||
* of add_theme_support(), or are all arguments specified
|
||||
* as the second parameter. Must be used with the "array" type.
|
||||
* @type string $description A short description of the feature. Included in
|
||||
* the Themes REST API schema. Intended for developers.
|
||||
* @type bool|array $show_in_rest {
|
||||
* Whether this feature should be included in the Themes REST API endpoint. Defaults to not being included.
|
||||
* When registering an 'array' or 'object' type, this argument must be an array with the 'schema' key.
|
||||
* Whether this feature should be included in the Themes REST API endpoint.
|
||||
* Defaults to not being included. When registering an 'array' or 'object' type,
|
||||
* this argument must be an array with the 'schema' key.
|
||||
*
|
||||
* @type array $schema Specifies the JSON Schema definition describing the feature. If any objects in the schema
|
||||
* do not include the 'additionalProperties' keyword, it is set to false.
|
||||
* @type string $name An alternate name to be use as the property name in the REST API.
|
||||
* @type callable $prepare_callback A function used to format the theme support in the REST API. Receives the raw theme support value.
|
||||
* @type array $schema Specifies the JSON Schema definition describing
|
||||
* the feature. If any objects in the schema do not include
|
||||
* the 'additionalProperties' keyword, it is set to false.
|
||||
* @type string $name An alternate name to be used as the property name
|
||||
* in the REST API.
|
||||
* @type callable $prepare_callback A function used to format the theme support in the REST API.
|
||||
* Receives the raw theme support value.
|
||||
* }
|
||||
* }
|
||||
* @return true|WP_Error True if the theme feature was successfully registered, a WP_Error object if not.
|
||||
@ -3055,30 +3074,48 @@ function register_theme_feature( $feature, $args = array() ) {
|
||||
}
|
||||
|
||||
if ( ! in_array( $args['type'], array( 'string', 'boolean', 'integer', 'number', 'array', 'object' ), true ) ) {
|
||||
return new WP_Error( 'invalid_type', __( 'The feature "type" is not valid JSON Schema type.' ) );
|
||||
return new WP_Error(
|
||||
'invalid_type',
|
||||
__( 'The feature "type" is not valid JSON Schema type.' )
|
||||
);
|
||||
}
|
||||
|
||||
if ( true === $args['variadic'] && 'array' !== $args['type'] ) {
|
||||
return new WP_Error( 'variadic_must_be_array', __( 'When registering a "variadic" theme feature, the "type" must be an "array".' ) );
|
||||
return new WP_Error(
|
||||
'variadic_must_be_array',
|
||||
__( 'When registering a "variadic" theme feature, the "type" must be an "array".' )
|
||||
);
|
||||
}
|
||||
|
||||
if ( false !== $args['show_in_rest'] && in_array( $args['type'], array( 'array', 'object' ), true ) ) {
|
||||
if ( ! is_array( $args['show_in_rest'] ) || empty( $args['show_in_rest']['schema'] ) ) {
|
||||
return new WP_Error( 'missing_schema', __( 'When registering an "array" or "object" feature to show in the REST API, the feature\'s schema must also be defined.' ) );
|
||||
return new WP_Error(
|
||||
'missing_schema',
|
||||
__( 'When registering an "array" or "object" feature to show in the REST API, the feature\'s schema must also be defined.' )
|
||||
);
|
||||
}
|
||||
|
||||
if ( 'array' === $args['type'] && ! isset( $args['show_in_rest']['schema']['items'] ) ) {
|
||||
return new WP_Error( 'missing_schema_items', __( 'When registering an "array" feature, the feature\'s schema must include the "items" keyword.' ) );
|
||||
return new WP_Error(
|
||||
'missing_schema_items',
|
||||
__( 'When registering an "array" feature, the feature\'s schema must include the "items" keyword.' )
|
||||
);
|
||||
}
|
||||
|
||||
if ( 'object' === $args['type'] && ! isset( $args['show_in_rest']['schema']['properties'] ) ) {
|
||||
return new WP_Error( 'missing_schema_properties', __( 'When registering an "object" feature, the feature\'s schema must include the "properties" keyword.' ) );
|
||||
return new WP_Error(
|
||||
'missing_schema_properties',
|
||||
__( 'When registering an "object" feature, the feature\'s schema must include the "properties" keyword.' )
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ( is_array( $args['show_in_rest'] ) ) {
|
||||
if ( isset( $args['show_in_rest']['prepare_callback'] ) && ! is_callable( $args['show_in_rest']['prepare_callback'] ) ) {
|
||||
return new WP_Error( 'invalid_rest_prepare_callback', __( 'The prepare_callback must be a callable function.' ) );
|
||||
return new WP_Error(
|
||||
'invalid_rest_prepare_callback',
|
||||
__( 'The prepare_callback must be a callable function.' )
|
||||
);
|
||||
}
|
||||
|
||||
$args['show_in_rest']['schema'] = wp_parse_args(
|
||||
@ -3090,7 +3127,9 @@ function register_theme_feature( $feature, $args = array() ) {
|
||||
)
|
||||
);
|
||||
|
||||
if ( is_bool( $args['show_in_rest']['schema']['default'] ) && ! in_array( 'boolean', (array) $args['show_in_rest']['schema']['type'], true ) ) {
|
||||
if ( is_bool( $args['show_in_rest']['schema']['default'] )
|
||||
&& ! in_array( 'boolean', (array) $args['show_in_rest']['schema']['type'], true )
|
||||
) {
|
||||
// Automatically include the "boolean" type when the default value is a boolean.
|
||||
$args['show_in_rest']['schema']['type'] = (array) $args['show_in_rest']['schema']['type'];
|
||||
array_unshift( $args['show_in_rest']['schema']['type'], 'boolean' );
|
||||
@ -3522,7 +3561,7 @@ function is_customize_preview() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Make sure that auto-draft posts get their post_date bumped or status changed to draft to prevent premature garbage-collection.
|
||||
* Makes sure that auto-draft posts get their post_date bumped or status changed to draft to prevent premature garbage-collection.
|
||||
*
|
||||
* When a changeset is updated but remains an auto-draft, ensure the post_date
|
||||
* for the auto-draft posts remains the same so that it will be
|
||||
|
Loading…
Reference in New Issue
Block a user