Make WordPress Core

Changeset 49223


Ignore:
Timestamp:
10/20/2020 03:12:07 AM (4 years ago)
Author:
helen
Message:

Media: Indicate if item is or was used as a site option in the details modal.

Props Mista-Flo, melchoyce.
Fixes #42063.

Location:
trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/template.php

    r49205 r49223  
    22382238 *
    22392239 * @since 3.2.0
     2240 * @since 5.6.0 Added the `$echo` parameter.
    22402241 *
    22412242 * @param WP_Post $post The attachment post to retrieve states for.
    2242  */
    2243 function _media_states( $post ) {
     2243 * @param bool    $echo Optional. Whether to echo the post states as an HTML string. Default true.
     2244 * @return string Media states string.
     2245 */
     2246function _media_states( $post, $echo = true ) {
     2247    $media_states = get_media_states( $post );
     2248    $media_states_string = '';
     2249
     2250    if ( ! empty( $media_states ) ) {
     2251        $state_count = count( $media_states );
     2252        $i           = 0;
     2253
     2254        $media_states_string .= ' — ';
     2255
     2256        foreach ( $media_states as $state ) {
     2257            $sep = ( ++$i === $state_count ) ? '' : ', ';
     2258
     2259            $media_states_string .= "<span class='post-state'>$state$sep</span>";
     2260        }
     2261    }
     2262
     2263    if ( $echo ) {
     2264        echo $media_states_string;
     2265    }
     2266
     2267    return $media_states_string;
     2268}
     2269
     2270/**
     2271 * Retrieves an array of media states from an attachment.
     2272 *
     2273 * @since 5.6.0
     2274 *
     2275 * @param WP_Post $post The attachment to retrieve states for.
     2276 * @return string[] Array of media state labels keyed by their state.
     2277 */
     2278function get_media_states( $post ) {
    22442279    static $header_images;
    22452280
     
    23112346     * @param WP_Post  $post         The current attachment object.
    23122347     */
    2313     $media_states = apply_filters( 'display_media_states', $media_states, $post );
    2314 
    2315     if ( ! empty( $media_states ) ) {
    2316         $state_count = count( $media_states );
    2317         $i           = 0;
    2318 
    2319         echo ' &mdash; ';
    2320 
    2321         foreach ( $media_states as $state ) {
    2322             $sep = ( ++$i === $state_count ) ? '' : ', ';
    2323 
    2324             echo "<span class='post-state'>$state$sep</span>";
    2325         }
    2326     }
     2348     return apply_filters( 'display_media_states', $media_states, $post );
    23272349}
    23282350
  • trunk/src/wp-includes/media-template.php

    r49222 r49223  
    460460                <# } #>
    461461
     462                <# if ( data.mediaStates ) { #>
     463                    <div class="media-states"><strong><?php _e( 'Used as:' ); ?></strong> {{ data.mediaStates }}</div>
     464                <# } #>
     465
    462466                <div class="compat-meta">
    463467                    <# if ( data.compat && data.compat.meta ) { #>
     
    672676                        <span class="screen-reader-text">{{ data.fileLengthHumanReadable }}</span>
    673677                    </div>
     678                <# } #>
     679
     680                <# if ( data.mediaStates ) { #>
     681                    <div class="media-states"><strong><?php _e( 'Used as:' ); ?></strong> {{ data.mediaStates }}</div>
    674682                <# } #>
    675683
  • trunk/src/wp-includes/media.php

    r49209 r49223  
    39773977    }
    39783978
     3979    $media_states = get_media_states( $attachment );
     3980    if ( ! empty( $media_states ) ) {
     3981        $response['mediaStates'] = implode( ', ', $media_states );
     3982    }
     3983
    39793984    /**
    39803985     * Filters the attachment data prepared for JavaScript.
Note: See TracChangeset for help on using the changeset viewer.