Wie erhält man die Größe der Miniaturansichten?

13

Ich weiß , wie zu setzen , die Größe eines Posts Thumbnail - Bild der WP Admin mit Medien Einstellungen oder mit dieser Funktion :

set_post_thumbnail_size( 150, 150 )

Aber wie würde man die Bildbreite und -höhe erhalten , die für eine Miniaturbildgröße festgelegt wurden?

Ich möchte in der Lage sein, so etwas zu tun:

get_post_thumbnail_size(); // return array(150, 150)

Wie würde das gemacht werden? Ist es mit get_option(), und wären die Optionen Tasten für Thumbnail-Breite und -Höhe?

mikkelbreum
quelle

Antworten:

8

Wenn eine Bildgröße entweder durch WordPress ( add_image_size) oder durch ein Plugin oder Ihren eigenen benutzerdefinierten Code hinzugefügt wird $_wp_additional_image_sizes, kann ich keine ähnliche Funktion zum Abrufen von Daten aus dieser globalen finden, aber Sie könnten sicherlich nur hineinschauen das globale, um zu bestimmen, welche Breite und Höhe eine registrierte Bildgröße hat.

Beispiel:

global $_wp_additional_image_sizes;
// Output width
echo $_wp_additional_image_sizes['post_thumbnail']['width'];
// Output height
echo $_wp_additional_image_sizes['post_thumbnail']['height'];

Stellen Sie sicher, dass Sie diese Werte an einem Punkt referenzieren, nachdem Sie die Größe festgelegt haben. Wenn Sie zum Beispiel die Größe der Miniaturansichten während der Initialisierung festlegen, müssen Sie nach diesem Zeitpunkt sicherstellen, dass Sie alle erforderlichen Schritte ausführen.

Ich hoffe, das hilft.

t31os
quelle
Es scheint post-thumbnaileher als post_thubmnail(WP3.6)
user2019515
15

Es gibt jedoch einen anderen Weg:

get_option( 'thumbnail_size_w' );
get_option( 'thumbnail_size_h' );

Anmerkung: thumbnailist eine der Größen, die nach innen eingestellt werden $_wp_additional_image_sizes. Der Aufruf an get_option()funktioniert also auch für jede andere Bildgröße.

Kennzeichen
quelle
4
Dies ist eigentlich die beste Option, da das Plugin seine Hooks darauf ausführen kann.
fuxia
1
Deshalb wundere ich mich, dass es noch nicht erwähnt wurde.
Mark
1

Beachten Sie, dass dies global $_wp_additional_image_sizes; möglicherweise nicht wie erwartet funktioniert. Wenn Sie beispielsweise das Plug-in verwenden, werden die zusätzlichen Größen, die von einem Design registriert wurden, nicht zurückgegeben.

eeMZee
quelle
Dies geschieht, wenn Sie den Anruf später in der Aktionssequenz tätigen, d. H. Wenn das Thema die Größen für die Init-Aktion registriert, muss der Aufruf erfolgen, nachdem diese Aktion ausgeführt wurde.
T31OS
1

Es fehlt nur noch die ID des Thumbnails:

$post_thumbnail_id = get_post_thumbnail_id( $post_id );
$attachment = wp_get_attachment_image_src( $post_thumbnail_id );
$width=$attachment[1];
$height=$attachment[2];
Alexander Poslavsky
quelle
-1

Was Sie brauchen, ist diese Funktion: wp_get_attachment_image_src

Codex: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

Es wird ein Array zurückgegeben, das die URL, Breite und Höhe des Anhangs enthält.

Mihael
quelle
1
Ja, aber es wird eine ID für ein bestimmtes Bild erwartet, der Benutzer muss keine ID übergeben, er möchte die registrierte Größe anhand des Namens herausfinden, z. thumbnail (post_thumbnail).
t31os
-1

Zusätzlich zum obigen Beitrag:

$attachment = wp_get_attachment_image_src( $attachment_id ); // where $attachment_id is the ID of the attachment you want to get the thumbnail from

Verwenden Sie dann einfach den nächsten Code, um die URL, die Breite und die Höhe anzuzeigen:

echo $attachment[0]; // url
echo $attachment[1]; // width
echo $attachment[2]; // height
Gerben Van Dijk
quelle