web-dev-qa-db-fra.com

Ajout de paramètres supplémentaires d'informations sur le fichier (compression jpeg et taille du fichier) à l'écran d'édition d'images

Sur l'écran d'édition d'images WordPress, j'aimerais ajouter une étiquette pour afficher le niveau de compression actuel et la taille du fichier d'octets de l'image.

Des idées sur la façon de puiser dans cet écran et de faire écho à ces données?

Les paramètres actuels indiquent:

  • Rendez-vous amoureux
  • URL
  • Nom de fichier
  • Type de fichier
  • Dimensions

Je voudrais ad

  • Taille du fichier
  • Compression de fichier (répète le paramètre jpeg_quality actuel)
2
N2Mystic

Vous pouvez essayer d'utiliser le filtre attachment_submitbox_misc_actions pour ajouter plus d'informations à la boîte. Voici un exemple pour la partie taille de fichier:

enter image description here

add_action( 'attachment_submitbox_misc_actions', 'custom_fileinfo_wpse_98608' );
function custom_fileinfo_wpse_98608(){
    global $post;
    $meta = wp_get_attachment_metadata( $post->ID );
    $upload_dir = wp_upload_dir();
    $filepath = $upload_dir['basedir']."/".$meta['file'];
    $filesize = filesize($filepath);
    ?>
    <div class="misc-pub-section">
        <?php _e( 'File Size:' ); ?> <strong><?php echo $filesize; ?> </strong> <?php _e( 'bytes' ); ?>             
    </div>
<?php
}

Les informations de fichier par défaut sont affichées avec la fonction attachment_submitbox_metadata() à travers cette action:

add_action( 'attachment_submitbox_misc_actions', 'attachment_submitbox_metadata' );

dans le fichier /wp-admin/includes/media.php

3
birgire

Ces 2 fonctions fonctionneront avec les fichiers téléchargés mime personnalisés (tels que PSD, EPS) lorsque la méta n'est pas disponible. Il renvoie également plus qu’un grand nombre d’octets, 2 unités logiques décimales. Le 99 place l’information en dernier dans la boîte à méta.

// Helper
function ua_formatBytes($bytes, $precision = 2) { 
        $units = array('B', 'kB', 'mB', 'GB', 'TB'); 
        $bytes = max($bytes, 0); 
        $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); 
        $pow = min($pow, count($units) - 1); 
        $bytes /= (1 << (10 * $pow)); 

        return round($bytes, $precision) . ' ' . $units[$pow]; 
} 

// Hooked
function ua_admin_custom_filesize_on_edit_media_screen() {
        global $post; // $post = get_post();
        $filesize = @filesize(get_attached_file($post->ID));

        if ( ! empty( $filesize ) && is_numeric( $filesize ) && $filesize > 0 ) : ?>
                <div class="misc-pub-section">
                        <?php _e( 'File size:' ); ?> <strong><?php echo ua_formatBytes( $filesize ); ?></strong>
                </div>
        <?php
        endif;
}
add_action( 'attachment_submitbox_misc_actions', 'ua_admin_custom_filesize_on_edit_media_screen', 99 );
2
Jonas Lundman