attachment_submitbox_metadata() WordPress Function
attachment_submitbox_metadata() is a Wordpress function that allows you to add custom fields to an attachment post. This can be useful for adding extra data to an image or document, such as copyright information or a link to the original file.
attachment_submitbox_metadata() #
Displays non-editable attachment metadata in the publish meta box.
Source
File: wp-admin/includes/media.php
3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 | function attachment_submitbox_metadata() { $post = get_post(); $attachment_id = $post ->ID; $file = get_attached_file( $attachment_id ); $filename = esc_html( wp_basename( $file ) ); $media_dims = '' ; $meta = wp_get_attachment_metadata( $attachment_id ); if ( isset( $meta [ 'width' ], $meta [ 'height' ] ) ) { $media_dims .= "<span id='media-dims-$attachment_id'>{$meta['width']} × {$meta['height']}</span> " ; } /** This filter is documented in wp-admin/includes/media.php */ $media_dims = apply_filters( 'media_meta' , $media_dims , $post ); $att_url = wp_get_attachment_url( $attachment_id ); $author = new WP_User( $post ->post_author ); $uploaded_by_name = __( '(no author)' ); $uploaded_by_link = '' ; if ( $author ->exists() ) { $uploaded_by_name = $author ->display_name ? $author ->display_name : $author ->nickname; $uploaded_by_link = get_edit_user_link( $author ->ID ); } ?> <div class = "misc-pub-section misc-pub-uploadedby" > <?php if ( $uploaded_by_link ) { ?> <?php _e( 'Uploaded by:' ); ?> <a href= "<?php echo $uploaded_by_link; ?>" ><strong><?php echo $uploaded_by_name ; ?></strong></a> <?php } else { ?> <?php _e( 'Uploaded by:' ); ?> <strong><?php echo $uploaded_by_name ; ?></strong> <?php } ?> </div> <?php if ( $post ->post_parent ) { $post_parent = get_post( $post ->post_parent ); if ( $post_parent ) { $uploaded_to_title = $post_parent ->post_title ? $post_parent ->post_title : __( '(no title)' ); $uploaded_to_link = get_edit_post_link( $post ->post_parent, 'raw' ); ?> <div class = "misc-pub-section misc-pub-uploadedto" > <?php if ( $uploaded_to_link ) { ?> <?php _e( 'Uploaded to:' ); ?> <a href= "<?php echo $uploaded_to_link; ?>" ><strong><?php echo $uploaded_to_title ; ?></strong></a> <?php } else { ?> <?php _e( 'Uploaded to:' ); ?> <strong><?php echo $uploaded_to_title ; ?></strong> <?php } ?> </div> <?php } } ?> <div class = "misc-pub-section misc-pub-attachment" > <label for = "attachment_url" ><?php _e( 'File URL:' ); ?></label> <input type= "text" class = "widefat urlfield" readonly= "readonly" name= "attachment_url" id= "attachment_url" value= "<?php echo esc_attr( $att_url ); ?>" /> <span class = "copy-to-clipboard-container" > <button type= "button" class = "button copy-attachment-url edit-media" data-clipboard-target= "#attachment_url" ><?php _e( 'Copy URL to clipboard' ); ?></button> <span class = "success hidden" aria-hidden= "true" ><?php _e( 'Copied!' ); ?></span> </span> </div> <div class = "misc-pub-section misc-pub-filename" > <?php _e( 'File name:' ); ?> <strong><?php echo $filename ; ?></strong> </div> <div class = "misc-pub-section misc-pub-filetype" > <?php _e( 'File type:' ); ?> <strong> <?php if ( preg_match( '/^.*?\.(\w+)$/' , get_attached_file( $post ->ID ), $matches ) ) { echo esc_html( strtoupper ( $matches [1] ) ); list( $mime_type ) = explode ( '/' , $post ->post_mime_type ); if ( 'image' !== $mime_type && ! empty ( $meta [ 'mime_type' ] ) ) { if ( "$mime_type/" . strtolower ( $matches [1] ) !== $meta [ 'mime_type' ] ) { echo ' (' . $meta [ 'mime_type' ] . ')' ; } } } else { echo strtoupper ( str_replace ( 'image/' , '' , $post ->post_mime_type ) ); } ?> </strong> </div> <?php $file_size = false; if ( isset( $meta [ 'filesize' ] ) ) { $file_size = $meta [ 'filesize' ]; } elseif ( file_exists ( $file ) ) { $file_size = wp_filesize( $file ); } if ( ! empty ( $file_size ) ) { ?> <div class = "misc-pub-section misc-pub-filesize" > <?php _e( 'File size:' ); ?> <strong><?php echo size_format( $file_size ); ?></strong> </div> <?php } if ( preg_match( '#^(audio|video)/#' , $post ->post_mime_type ) ) { $fields = array ( 'length_formatted' => __( 'Length:' ), 'bitrate' => __( 'Bitrate:' ), ); /** * Filters the audio and video metadata fields to be shown in the publish meta box. * * The key for each item in the array should correspond to an attachment * metadata key, and the value should be the desired label. * * @since 3.7.0 * @since 4.9.0 Added the `$post` parameter. * * @param array $fields An array of the attachment metadata keys and labels. * @param WP_Post $post WP_Post object for the current attachment. */ $fields = apply_filters( 'media_submitbox_misc_sections' , $fields , $post ); foreach ( $fields as $key => $label ) { if ( empty ( $meta [ $key ] ) ) { continue ; } ?> <div class = "misc-pub-section misc-pub-mime-meta misc-pub-<?php echo sanitize_html_class( $key ); ?>" > <?php echo $label ; ?> <strong> <?php switch ( $key ) { case 'bitrate' : echo round ( $meta [ 'bitrate' ] / 1000 ) . 'kb/s' ; if ( ! empty ( $meta [ 'bitrate_mode' ] ) ) { echo ' ' . strtoupper ( esc_html( $meta [ 'bitrate_mode' ] ) ); } break ; default : echo esc_html( $meta [ $key ] ); break ; } ?> </strong> </div> <?php } $fields = array ( 'dataformat' => __( 'Audio Format:' ), 'codec' => __( 'Audio Codec:' ), ); /** * Filters the audio attachment metadata fields to be shown in the publish meta box. * * The key for each item in the array should correspond to an attachment * metadata key, and the value should be the desired label. * * @since 3.7.0 * @since 4.9.0 Added the `$post` parameter. * * @param array $fields An array of the attachment metadata keys and labels. * @param WP_Post $post WP_Post object for the current attachment. */ $audio_fields = apply_filters( 'audio_submitbox_misc_sections' , $fields , $post ); foreach ( $audio_fields as $key => $label ) { if ( empty ( $meta [ 'audio' ][ $key ] ) ) { continue ; } ?> <div class = "misc-pub-section misc-pub-audio misc-pub-<?php echo sanitize_html_class( $key ); ?>" > <?php echo $label ; ?> <strong><?php echo esc_html( $meta [ 'audio' ][ $key ] ); ?></strong> </div> <?php } } if ( $media_dims ) { ?> <div class = "misc-pub-section misc-pub-dimensions" > <?php _e( 'Dimensions:' ); ?> <strong><?php echo $media_dims ; ?></strong> </div> <?php } if ( ! empty ( $meta [ 'original_image' ] ) ) { ?> <div class = "misc-pub-section misc-pub-original-image" > <?php _e( 'Original image:' ); ?> <a href= "<?php echo esc_url( wp_get_original_image_url( $attachment_id ) ); ?>" > <?php echo esc_html( wp_basename( wp_get_original_image_path( $attachment_id ) ) ); ?> </a> </div> <?php } } |
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
3.5.0 | Introduced. |