WordPress开发函数attachment_submitbox_metadata()

WordPress开发函数attachment_submitbox_metadata()

223
2021-04-01 13:21:50

WordPress开发函数attachment_submitbox_metadata(),在“发布元框”中显示不可编辑的附件元数据。

用法:

attachment_submitbox_metadata()

来源:

文件: wp-admin/includes/media.php

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']}&nbsp;&times;&nbsp;{$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 = 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

}

}

更新日志:

WordPress开发函数attachment_submitbox_metadata() (https://www.wpzt.net/) WordPress开发教程 第1张

喜欢这个文章就点个赞分享给好友吧~

END

发表评论

一次支付终身使用
免费版本更新
靠谱的技术支持
成为会员