Agregar la configuración de Información de archivo adicional (compresión jpeg y tamaño de archivo) a la pantalla Editar imágenes

2

En la pantalla de edición de imagen de WordPress, me gustaría agregar una etiqueta para mostrar el nivel de compresión actual y el tamaño del archivo de bytes de la imagen.

¿Alguna idea de cómo acceder a esta pantalla y hacer eco de estos datos?

La configuración actual muestra:

  • fecha
  • URL
  • nombre de archivo
  • Tipo de archivo
  • Dimensiones

Me gustaría anunciar

  • Tamaño del archivo
  • Compresión de archivos (se hace eco de la configuración actual de jpeg_quality)
pregunta N2Mystic 07.05.2013 - 15:15

2 respuestas

3

Puedes intentar usar el filtro attachment_submitbox_misc_actions para agregar más información al cuadro. Aquí hay un ejemplo para la parte del tamaño del archivo:

add_action('attachment_submitbox_misc_actions','custom_fileinfo_wpse_98608');functioncustom_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
}

La información predeterminada del archivo se muestra con la función attachment_submitbox_metadata() a través de esta acción:

add_action( 'attachment_submitbox_misc_actions', 'attachment_submitbox_metadata' );

en el archivo /wp-admin/includes/media.php

    
respondido por el birgire 07.05.2013 - 15:57
2

Estas 2 funciones funcionarán con archivos cargados de mime personalizados (como PSD, EPS) cuando no haya meta disponible. También devuelve más que solo una gran cantidad de bytes, es decir, 2 unidades lógicas decimales. El 99 coloca la última información en el meta box.

// 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 );
    
respondido por el Jonas Lundman 25.05.2013 - 13:32

Lea otras preguntas en las etiquetas