it-swarm.com.de

Holen Sie sich die Größe (Größe in Kb oder MB) eines vorgestellten Bildes?

Ich muss einige Bildinformationen auf der Post-Seite anzeigen. Unter anderem muss ich die Dateigröße des Bildes anzeigen (empfohlenes Bild des Beitrags).

Ich habe diese Funktion in single.php ausprobiert.

<?php
function getSize($file){
   $bytes = filesize($file);
   $s = array('b', 'Kb', 'Mb', 'Gb');
   $e = floor(log($bytes)/log(1024));

  return sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e))));
}
?>

und um das zu wiederholen:

<?php echo getSize('/wp-content/uploads/2014/06/some-file-name.jpg'); ?>

Es funktioniert, aber ich brauche Hilfe, damit die URL des ausgewählten Bildes automatisch abgerufen und nicht manuell in den Code eingegeben wird.

Zum Beispiel verwende ich dies, um die URL des ausgewählten Bildes ("full") wiederzugeben:

 <?php
 if ( has_post_thumbnail()) {
   $full_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full');
echo $thumb_image_url[0];
 }
?> 

Könnten Sie bitte helfen, es zu kombinieren oder mir eine andere Lösung anzubieten?

1
Advanced SEO

Sie können get_attached_file() verwenden, um:

Ruft den angehängten Dateipfad basierend auf der Anhangs-ID ab.

Und get_post_thumbnail_id() , um die Beitragsminiatur des aktuellen Beitrags oder eines beliebigen Beitrags zu bestimmen, wenn Sie den Parameter $post_id festlegen. Beispielhafte Verwendung:

$bytes = filesize(
    get_attached_file(
        get_post_thumbnail_id()
    )
);

Verwenden Sie size_format() to

Konvertieren Sie eine bestimmte Anzahl von Bytes in ein für Menschen lesbares Format

$hr_size = size_format( $bytes );

Wenn Sie tatsächlich die Größe einer der Zwischengrößen erhalten möchten, zeigt das Obige die Dateigröße des Vollbilds. Verwenden Sie image_get_intermediate_size() , wobei:

Die Metadaten 'Größen' werden für kompatible Größen verwendet, die für den Parameter $ Größenwert verwendet werden können.

Das heißt, es verwendet wp_get_attachment_metadata() , um die Daten abzurufen. Außerdem benötigen Sie wp_upload_dir() , um den Pfad zu erstellen. Beispielhafte Verwendung:

$upload_dir = wp_upload_dir();
$metadata_size = image_get_intermediate_size( 
    get_post_thumbnail_id(),
    'thumbnail'
);
$path_inter = $upload_dir[ 'basedir' ] . '/' . $metadata_size[ 'path' ];
$bytes = filesize(
    $path_inter
);
$hr_size = size_format( $bytes );
7
Nicolai