WordPress: zusätzliche Bildergrößen definieren

Wem die drei Bildergrößen, die man unter EinstellungenMedien definieren kann, nicht ausreichen, der kann recht einfach zusätzliche Bildergrößen definieren. Code nach dem folgenden Muster trägt man in die functions.php des jeweiligen WordPress-Themes ein:

add_image_size( name, breite, höhe, zuschneiden? );

Der Code ist recht einfach zu lesen. Zuerst muss man den Namen des neuen Formats angeben gefolgt von Angaben zur Breite und Höhe in Pixeln und ob das Bild beschnitten (engl. crop) werden soll oder ob es verkleinert werden soll.

WordPress: zuätzliche Bildgrößen

Die Standardangabe hierbei ist false und dabei wird das soft crop eingesetzt, d.h. das Bild wird unter Beibehaltung der Proportionen verkleinert. Setzt man hier den Wert true ein, dann wird das Bild zugeschnitten. Hier zwei Beispiele:

add_image_size('vorschaubild', 125, 125, true);
add_image_size('produktbild', 500, 350);

Im ersten Beispiel wird das Bild zugeschnitten und im zweiten Beispiel wird das Bild die Proportionen behalten. Weitere Infos dazu findet man in der offiziellen Dokumentation.

Jetzt hat man zwar die Bildgrößen definiert und WordPress wird diese neue Größen auf dm FTP-Server brav generieren, aber im Backend stehen die nicht zur Auswahl. Um das Ergebnis aus der oberen Abbildung zu erreichen muss noch folgendes in die functions.php eintragen:

add_filter('image_size_names_choose', 'custom_image_sizes_choose');
function custom_image_sizes_choose($sizes) {
	$custom_sizes = array(
		'vorschaubild' => 'Vorschaubild',
		'produktbild' => 'Produktbild'
	);
	return array_merge($sizes, $custom_sizes);
}

Nachtrag: habe es vorhin getestet und das oben genannte Code-Fragment, wie auch das unten vorgestellte Plugin funktionieren auch in WordPress 4.4.2 4.5.3.

Zusätzliche Bildergrößen per Plugin

Wem das ganze zu kompliziert ist oder wer es einfach etwas komfortabler haben möchte, der installiert das WordPress-Plugin Simple Image Sizes. Mit der Erweiterung kann man nicht nur neue Bildformate definieren sondern auch die Artikelbilder neu generieren um die ggfl. an die neuen Größen anzupassen.

Ich habe sowohl die Code-Lösung als auch das Plugin getestet und es funktioniert auch unter WordPress 3.6 4.5.3.

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

9 Kommentare

  1. Das ist ein toller Tip. Das erspart mir künftig das umständliche Anpassen der Bildergrößen im Artikel und sorgt für gleichmäßig große Bilder in allen Artikeln.

    Frage: Um bereits hochgeladene Bilder in das neue Format zu bekommen, müßten die dann erst gelöscht und neu hochgeladen werden, richtig?

    Vielen Dank!

  2. … und wenn man Bilder in der Mediathek mit einem Klick einfach ersetzen will, kann ich nur EnableMediaReplace empfehlen … kommt bei mir laufend zum Einsatz und ist eine echte Arbeitserleichterung.

  3. Es reicht nicht aus, add_image_size() aufzurufen und den Filter auf image_size_names_choose zu setzen. Beim Editieren eines Bildes werden die neuen Bildgrößen trotzdem nicht berücksichtigt. Zusätzlich müssen einmalig die entsprechenden Einträge in der Datenbank angelegt werden. Etwa so:


    add_option('vorschaubild_size_w', 125);
    add_option('vorschaubild_size_h', 125);
    add_option('vorschaubild_crop', true);

  4. …die Beschriftung wird beim Einfügen eines Bildes leider bei diesem Codeschnipsel nicht angezeigt.

    Was muss ich in den Filter schreiben, damit die caption wieder erscheint?

    Beste Grüße
    Frank

  5. …alles zurück:

    Schuld war ein Codeschnipsel, um die Bildabmessungen zu entfernen.

    Sorry.

    // Entfernen Höhe Breite von Bildern

    add_filter( ‘get_image_tag’, ‘remove_width_and_height_attribute’, 10 );
    add_filter( ‘post_thumbnail_html’, ‘remove_width_and_height_attribute’, 10 );
    add_filter( ‘image_send_to_editor’, ‘remove_width_and_height_attribute’, 10 );

    function remove_width_and_height_attribute( $html ) {
    return preg_replace( ‘/(height|width)=”\d*”\s/’, “”, $html );
    }

  6. Hi,
    hab nur add_image_size in der functions eingetragen. Trotzdem hat alles bereits funktioniert. Liegt das an 3.8?

  7. @Frank: Hast du es mit editierten Bilder probiert?

    Die Options-Einträge sind nur für editierte Bilder nötig, sonst reicht natürlich der Filter.

    Ob sich das in 3.8 geändert hat und der Filter nun auch bei editierten Bilder wirkt, habe ich aber noch nicht geprüft.

Kommentare sind geschlossen.