diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php index 2e63b7e2dd..2f1f67c48d 100644 --- a/wp-admin/includes/template.php +++ b/wp-admin/includes/template.php @@ -2237,10 +2237,45 @@ function get_post_states( $post ) { * Outputs the attachment media states as HTML. * * @since 3.2.0 + * @since 5.6.0 Added the `$echo` parameter. * * @param WP_Post $post The attachment post to retrieve states for. + * @param bool $echo Optional. Whether to echo the post states as an HTML string. Default true. + * @return string Media states string. */ -function _media_states( $post ) { +function _media_states( $post, $echo = true ) { + $media_states = get_media_states( $post ); + $media_states_string = ''; + + if ( ! empty( $media_states ) ) { + $state_count = count( $media_states ); + $i = 0; + + $media_states_string .= ' — '; + + foreach ( $media_states as $state ) { + $sep = ( ++$i === $state_count ) ? '' : ', '; + + $media_states_string .= "$state$sep"; + } + } + + if ( $echo ) { + echo $media_states_string; + } + + return $media_states_string; +} + +/** + * Retrieves an array of media states from an attachment. + * + * @since 5.6.0 + * + * @param WP_Post $post The attachment to retrieve states for. + * @return string[] Array of media state labels keyed by their state. + */ +function get_media_states( $post ) { static $header_images; $media_states = array(); @@ -2310,20 +2345,7 @@ function _media_states( $post ) { * 'Background Image', 'Site Icon', 'Logo'. * @param WP_Post $post The current attachment object. */ - $media_states = apply_filters( 'display_media_states', $media_states, $post ); - - if ( ! empty( $media_states ) ) { - $state_count = count( $media_states ); - $i = 0; - - echo ' — '; - - foreach ( $media_states as $state ) { - $sep = ( ++$i === $state_count ) ? '' : ', '; - - echo "$state$sep"; - } - } + return apply_filters( 'display_media_states', $media_states, $post ); } /** diff --git a/wp-includes/media-template.php b/wp-includes/media-template.php index 9908843b98..42a6f79131 100644 --- a/wp-includes/media-template.php +++ b/wp-includes/media-template.php @@ -459,6 +459,10 @@ function wp_print_media_templates() { <# } #> + <# if ( data.mediaStates ) { #> +