Frisch notiert!

Die neusten Artikel aus unserem Blog.

Fotos in Originalgröße (volle Auflösung) in WordPress-Mediathek nach Upload löschen

Zuletzt aktualisiert am 18/08/2016 von Gino Cremer
11 Kommentare
Wordpress
/ Wordpress / 11

Wer kennt sie nicht: Kunden mit Digitalkameras, die gefühlt 80.000 Megapixel zum Besten geben und Fotos von jeweils mehr als 10 Megabyte in WordPress hochladen möchten. Bildbearbeitungsprogramme werden entweder gekonnt oder ganz bewusst ignoriert. Ein kleines Snippet schafft Abhilfe und löscht das Foto in Originalgröße nach dem Upload.

Genauer gesagt: Es ersetzt das Foto in Originalgröße durch ein kleineres Motiv. Die Größe ist natürlich frei einstellbar.
Bei unseren Kunden-Websites werden die sündhaft großen Originalmotive später meist gar nicht mehr gebraucht. In der Regel schlummern die Fotos des Kunden in Originalgröße auf seiner eigenen Festplatte. Grund genug die Festplatte des Servers Punkto Webspace etwas zu entlasten und folgendes Snippet in die Datei „functions.php“ des genutzten Themes einfügen.

add_filter('wp_generate_attachment_metadata','replace_uploaded_image');

function replace_uploaded_image($image_data)
{
// if there is no large image : return
if ( !isset($image_data['sizes']['large']) )
return $image_data;

// paths to the uploaded image and the large image
$upload_dir = wp_upload_dir();
$uploaded_image_location = $upload_dir['basedir'] . '/' . $image_data['file'];
$large_image_location = $upload_dir['path'] . '/' . $image_data['sizes']['large']['file'];

// delete the uploaded image
unlink($uploaded_image_location);

// rename the large image
rename($large_image_location, $uploaded_image_location);

// update image metadata and return them
$image_data['width'] = $image_data['sizes']['large']['width'];
$image_data['height'] = $image_data['sizes']['large']['height'];
unset($image_data['sizes']['large']);

return $image_data;
}


Das Original-Snippet stammt übrigens von dieser Seite.

Maximale Bildgröße einstellen

Ihr möchtet nun bestimmen was konkret unter „large“ verstanden wird? In der WordPress-Administrationsoberfläche findet man unter Einstellungen > Medien die „Maximale Bildgröße“. Einfach den entsprechenden Wert nach eigenem Gusto anpassen. Anpassungen an diesen Werten wirken sich übrigens nur auf Bilder aus, die nach der Anpassung hochgeladen werden. Bilder, die sich bereits in der Mediathek befinden, werden nicht angerührt. Abhilfe schafft an dieser Stelle das Plugin „Regenerate Thumbnails“.

Bildschirmfoto 2014-03-21 um 08.39.27

Eigene Werte definieren

Wer den WordPress-eigenen Wert „large“ bereits anderweitig verwendet und lieber ein individuelles Maß nutzen möchte, kann in seiner Datei functions.php eine eigene „Image Size“ definieren.

add_image_size( 'neues-mass', 1600, 1200 ); 

Anschließend muss das oben notierte Script etwas angepasst und überall $image_data[’sizes‘][‚large‘] durch $image_data[’sizes‘][’neues-mass‘] ersetzt werden.

Gino Cremer

Ich bin Geschäftsführer der auf Weblösungen spezialisierten Agentur Pixelbar aus dem belgischen Eupen. Ich habe langjährige Erfahrung mit CMS-basierten Kundenprojekten, vornehmlich auf WordPress-Basis und bin ein Webdesigner der ersten Stunde. Daneben arbeite ich auch als Dozent und Berater am WIFI Wien im Bereich Social Media und Webdesign.

Weitere Beiträge von gino anzeigen

11 Kommentare

  1. Muss das „large“ nur in $image_data[’sizes‘][‚large‘] getauscht werden oder überall in dem Code? (z.B. rename($large_image_location, $uploaded_image_location);)

  2. Hallo Gino, ich nutze wie in dem unteren Teil deiner Beschreibung einen eigenen Größen-Wert. Das funktioniert über den Upload in der Mediathek auch sehr gut. Möchte ich die Datei nun direkt im Beitrag über Beitragsbild hochladen, bekomme ich stets den Fehler „Bei dem Upload ist ein Fehler aufgetaucht. Probiere es später noch einmal.“ und es wird kein Bild erzeugt. Was ist hier das Problem?

    1. Hallo Clemens, ich vermute mal, dass irgendwo ein Rechte-Problem (Zugriffsrechte) vorliegt. Dass bereits beim Upload etwas schief läuft, lässt eher darauf schließen, dass der Ordner /uploads nicht beschrieben werden kann. Am besten via FTP auf die Dateien und Ordner zugreifen und die Rechte des Ordners /uploads (da liegen die Mediathek-Elemente drin) anpassen bzw. großzügigere Rechte vergeben.

      1. Hallo Gino, vielen Dank für deine Antwort. Sowohl der Uploads-Ordner als auch die Jahres- und Monats-Ordner haben aber 777 Rechte.
        Es funktioniert insoweit, dass die Bilder in meinen Größenformaten hochgeladen werden, aber das große Bild dann nicht umbenannt wird. Ich kann es nicht in 100% der Fälle reproduzieren, doch in den meisten verhält es sich so. Konnte aber keinen Grund herausfinden.
        Das Problem ist wohl bisher nicht bekannt? Hast du noch einen Tipp für mich?

  3. Hallo Gino,
    ich habe dein Snippet in meine functions.php eingebaut und danach die maximale Breite / Höhe für Groß auf jeweils 1200 gesetzt.

    Lade ich nun ein Bild hoch, wird mir zwar ein Bild mit 1200×900 erzeugt, aber das Originalbild nicht gelöscht! Was kann da das Problem sein?

    Ich benutze WordPress 4.2.1 und PHP 5.4.40

    Danke schon mal im Voraus!

    1. Hallo Rainer, „aus der Ferne“ kann ich das leider nicht sagen. Ich würde vermuten, dass WordPress bzw. das Script es aufgrund der Zugriffsrechte nicht schafft Dateien zu löschen. Das ist allerdings spekulativ. Angenommen du lädst eine Datei in die Mediathek hoch und löschst dnaach diese Datei wieder…werden die Bilder auch tatsächlich aus dem Ordner (per FTP kontrollieren!) entfernt? Wenn ja, ist tatsächlich ales richtig und die Zugriffsrechte müssten stimmen. Falls nein, liegt es nicht am Script, sondern an den allgemeinen Zugriffsrechten (WordPress hat einfach ausgedrückt kein Recht, die Dateien in /uploads zu löschen).

  4. Guten Abend,
    Möchten Sie eine schnelle und zuverlässige Lösung für alle Ihre Probleme? ich
    empfehlen auf jeden Fall Herr Paul, der einzige Weg,
    Derzeit bieten schnelle und zuverlässige Darlehen zwischen Privatpersonen in 72
    Stunden bei einer Rate von 3% an.Voici die Bereiche, in denen
    * Finanz * Home Loan * Ready to: es wird Ihnen helfen
    Investitionen * Auto Loan * Schuldenkonsolidierung * Margin
    Kredit * Zweite Hypothek * Erwerb von Kredit * Privatkredit.
    Probieren Sie es aus und Sie werden nicht enttäuscht sein. Er ist bereit, Sie
    gewähren ein Darlehen von 5000 € bis 900.000 €, er ist bereit zu helfen
    jemand in Not, mache ich nur Zeugnis Dankbarkeit zu ihm,
    also bitte verzeiht mir, wenn es dich stört. Weitere Informationen
    danke die E-Mail für Ihre Anwendung zu kontaktieren.

    E-Mail: uniapaulroger@gmail.com

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert