wake-up-neo.com

Wie bekomme ich alle empfohlenen Bildgrößen und deren URLs?

Gibt es eine Standardmethode, um alle registrierten Größen der vorgestellten Bilder abzurufen? Bei add_image_size() kann man verschiedene Größen eintragen. Was ich brauche, ist, alle Größen eines vorgestellten Bildes eines Pfostens zu bekommen. Etwas wie das:

$ sizes = get_post_feature_image_sizes ($ postid);

... was ein Array von Objekten wie dieses zurückgibt (hier im JSON-Format):

[
{width: 200, height: 300, url: 'http://.........../wp-content/uploads/2015/10/file-200x300.jpg'},
{width: 300, height: 400, url: 'http://.........../wp-content/uploads/2015/10/file.jpg'},
]

Gibt es so etwas oder muss ich alle Dateinamen des Upload-Ordners mit Regex scannen?

5
NoOne

Ich erinnere mich nicht an eine Funktion, die genau das macht, aber sie ist mit API insgesamt einfach zu erreichen:

  1. ID des Anhangs mit get_post_thumbnail_id() abrufen
  2. Abrufen verfügbarer Größen mit get_intermediate_image_sizes()
  3. Verwenden Sie für jede Größe wp_get_attachment_image_src() , um genau die Daten anzugeben, die Sie benötigen (URL und Abmessungen).
7
Rarst

Nachdem Sie die ID ( get_post_thumbnail_id ($ YOUR_POST_ID) ) erhalten haben, müssen Sie die Basis-URL des Uploads und die Metadaten des Anhangs kennen.

Uploads base url können in einem Array gefunden werden, das von wp_upload_dir () zurückgegeben wird.

Metadaten für Anhänge können mit wp_get_attachment_metadata () abgerufen werden.

Hier ist eine praktische Funktion, die ich geschrieben habe und die URL-Daten für alle Bildanhänge, die nicht nur enthalten sind aufbereitet.

function prepareImageData( $attachment_id ){
  $uploads_baseurl = wp_upload_dir()['baseurl'];

  $prepared = [];
  $data = wp_get_attachment_metadata($attachment_id);
  $prepared = [
    'mime_type' => get_post_mime_type($attachment_id),
    'url' => $uploads_baseurl.'/'.$data['file'],
    'sizes' => [],
  ];

  foreach( $data['sizes'] as $size => $sizeInfo ){
    $prepared['sizes'][$size] = [
      'url' => $uploads_baseurl.'/'.$sizeInfo['file'],
    ];
  }

  return $prepared;
}
0
jave.web

Um ein Bild entsprechend der Größe zu erhalten, können Sie die in WordPress vordefinierte Funktion the_post_thumbnail( $size, $attr ) verwenden.

sie können vordefinierte Medienformate verwenden.

the_post_thumbnail();                 

the_post_thumbnail( 'thumbnail' );       // Thumbnail (default 150px x 150px max)
the_post_thumbnail( 'medium' );          // Medium resolution (default 300px x 300px max)
the_post_thumbnail( 'large' );           // Large resolution (default 640px x 640px max)
the_post_thumbnail( 'full' );            // Full resolution (original size uploaded)

the_post_thumbnail( array(100, 100) );

Das könnte dir helfen.

0
Ajay Khandal