Hochgeladene Dateien verschieben

  • Hallo,
    ich suche ein Plug-In, mit dem ich Dateien in einen anderen Ordner im Dateisystem (mit entsprechend neuer URL) verschieben kann. Also statt .../wp-content/uploads/2022/05/bild.jpg nach ...wp-content/uploads/design/bild.jpg
    Ich möchte nicht die Grundeinstellung ändern, sondern als Option nachträglich. Ich habe schon diverse Plug-Ins ausprobiert, aber die verschieben die Dateien nicht sondern legen eine virtuelle Ordnerstruktur in der Datenbank an (das möchte ich nicht).
    Das einzige Plug-In, dass ich gefunden habe dafür (Organize Media Folder) funktioniert leider nicht richtig, dass zeigt ein Großteil der hochgeladenen Dateien nicht an.
    Gibt es dafür ein gutes Plug-In? Muss ja nicht viel können, nur die Datei verschieben (mit Thumbnails wenn erforderlich) und den EIntrag in der Datenbank aktualisieren.
    Vielen Dank
    Stefan

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren


  • Also statt .../wp-content/uploads/2022/05/bild.jpg nach ...wp-content/uploads/design/bild.jpg

    die Mediathek in WordPress erlaubt dies eigentlich nicht. *Jahr* und Monat ist das maximale, was geht.

    Wenn das Datum stört, kannst du unter Einstellungen => Medien

    Meine Uploads in monats- und jahresbasierten Ordnern organisieren

    deaktivieren.

    Verwende ein aktuelles Dateiformat für deine Bilder .jxl
    benenne die Datei sinnvoll


    wp-content/uploads/design.jxl

    ^- geht mit WordPress und ist SEO optimiert.


    Ich möchte nicht die Grundeinstellung ändern, sondern als Option nachträglich. Ich habe schon diverse Plug-Ins ausprobiert, aber die verschieben die Dateien nicht sondern legen eine virtuelle Ordnerstruktur in der Datenbank an (das möchte ich nicht).

    Gebastel an der Mediathek funktionieren leider nicht. Es gibt Galerie Plugins, die außerhalb von WordPress und der Mediathek Bilder verwalten und eine eigene "Verzeichnisstruktur" unterstützen. Die Bilder sind dann aber nicht mehr in der Mediathek.

    Mit offenen Augen träumen

  • die Mediathek in WordPress erlaubt dies eigentlich nicht. *Jahr* und Monat ist das maximale, was geht.

    Wenn das Datum stört, kannst du unter Einstellungen => Medien

    Meine Uploads in monats- und jahresbasierten Ordnern organisieren

    deaktivieren.

    Darum geht es mir nicht, das ist standardmäßig gut, worum es mir geht, ist eine Datei nachträglich im Dateisystem zu verschieben. Der Hintergrund ist, dass ich für einen anderen Ordner mittels Apache-Konfiguration/.htaccess spezielle Zugriffrechte setzen kann.


    Verwende ein aktuelles Dateiformat für deine Bilder .jxl

    JPEG-XL ist vielleicht etwas zu aktuell... Soweit ich weiß kann das nur Firefox beta und Chrome und auch nur wenn man das aktiviert. Verstehe mich nicht falsch, ich halte JPEG-XL für das erste Format das JPEG wirklich ersetzen kann (anders als JPEG-2000, JPEG-X-sonstwas (außer L), heif, WebP, avif...), da es tatsächlich alles kann was JPEG kann, nicht notwendigerweise komplexer bei der Kodierung ist und die Kodiereffizienz bei allen Bildgrößen/Qualitäten höher ist (bei den Videocodec-basierenden Formaten ist das oft der Knackpunkt: Besseres Bild bei starker Kompression, aber bei hoher Qualität ist JPEG besser). Aber ich wollte nicht 99,99% der Besucher ohne Bilder dastehen lassen. Ich habe übrigens die Standard-libjpeg-turbo durch mozjpeg auf dem Server ersetzt, dadurch werden kleinere JPEGs bei besserer Qualität erzeugt (die Thumbnails die Wordpress erzeugt). Da hilft selbst eine verlustfreie Konvertierung nach jxl nicht mehr viel um die Dateien zu verkleinern (weniger als 10%). Wäre natürlich genial wenn Wordpress die Thumbnails auch als jxl erzeugen könnte und je nachdem was der Browser in seinem accept-Header mitschickt das richtige Format wählt.

    Gehen tut das schon, man kann eine Datei manuell verschieben und die guid in der Datenbank anpassen. Mehr möchte ich ja gar nicht. Aber ich vermute ich muss mich selber hinsetzen und ein Plug-In basteln.

  • Hier mein Plug-In, nicht schön, aber funktioniert. Es wird ein Metainfo-Kasten erzeugt, der alle Ordner im Upload-Hauptverzeichnis auflistet, sowie das Hauptverzeichnis selber und den Jahr-Monat-Ordner des Posts. Wenn ein anderer Ordner gewählt wird, wird die Datei dahin verschoben und falls erfolgreich die guid in der Datenbank aktualisiert. Wenn Datenbank aktualisieren nicht klappt, wird die Datei zurückverschoben und wenn erfolgreich, wird noch nach Thumbnails gesucht und diese auch verschoben.

    Wichtig: Feste Links in irgendwelchen Posts oder so werden nicht aktualisiert! Nur nutzen wenn man weiß was man tut!

  • Anmerkung am Rande: Das Feld [FONT=Courier New]guid[/FONT] wird von WordPress nicht zum Auffinden von Dateien genutzt und ist auch nicht zwangsläufig konsistent mit der aktuellen URL/Domain. Mehr dazu z.B. google: WordPress guid

  • Gegenfrage: Wie findet Wordpress denn die Medien-Dateien? Ich konnte in der Datenbank nichts anderes finden, dass auf die hochgeladene Datei verweist. Und bis jetzt konnte ich keine Probleme feststellen. Die Warnungen vor dem Ändern der guid die man bei Google findet beziehen sich immer auf Posts (ich weiß, Medien sind auch ein spezieller Post-Type, aber vermutlich der speziellste).

  • Darum geht es mir nicht, das ist standardmäßig gut, worum es mir geht, ist eine Datei nachträglich im Dateisystem zu verschieben. Der Hintergrund ist, dass ich für einen anderen Ordner mittels Apache-Konfiguration/.htaccess spezielle Zugriffrechte setzen kann.

    Du kannst jederzeit externe Inhalte über den Editor einfügen. Wofür benötigst du die Mediathek?


    Soweit ich weiß kann das nur Firefox beta und Chrome und auch nur wenn man das aktiviert.

    JPG XL ist Standard. Aktuelle Browser können dies schon sehr lange

    • Chrome: behind a flag since version 91.0.4470.0
    • Firefox: behind a flag since version 90.0a1
    • Edge: behind a flag since version 91
    • Opera: behind a flag since version 77

    Firefox ab 90.0 und jetzt sind wir bei Version 100...


    Ich habe übrigens die Standard-libjpeg-turbo durch mozjpeg auf dem Server ersetzt, dadurch werden kleinere JPEGs bei besserer Qualität erzeugt (die Thumbnails die Wordpress erzeugt).

    Dafür ist dein C02 Fußabdruck Schrott.

    2022 mozjpeg verwenden? Habe ich mindestens seit 5 Jahren nicht mehr auf dem Server.

    mozjpeg benötigt für die Bearbeitung von 1MB fast 1 Minute und verbraucht dafür zu viel Energie. Da es den Stromverbrauch bei den Clients reduziert, gleicht es sich aus und war bis zur Einführung von WebP2 pp Jpg XL "vertretbar". Aber 2022?



    Wäre natürlich genial wenn Wordpress die Thumbnails auch als jxl erzeugen könnte und je nachdem was der Browser in seinem accept-Header mitschickt das richtige Format wählt.

    kann WordPress. Es gibt einen Google Entwickler bei WordPress, der ein Performance Plugin geschrieben hat. Das Plugin kann zuerst WebP aber wenn auf dem Server JPG XL ist...


    =>
    https://jpegxl.io/tutorials/html/


    Aber wir kommen vom Thema ab.

    Mit offenen Augen träumen

  • JPG XL ist Standard.


    r23 versucht hier wiederholt, seine JXL-Philosophie in den Raum zu streuen. Weiß der Geier, was er damit bezweckt. [Blockierte Grafik: https://macsofa.net/images/smilies/icon_party.gif] Es macht absolut keinen Sinn, da kein einziger Browser dieses Dateiformat (per Grundeinstellung) unterstützt. Wer es dennoch unbedingt machen will, beschert seinen Besuchern eine bilderfreie Webseite, sofern kein Fallback vorhanden. [Blockierte Grafik: https://macsofa.net/images/smilies/icon_toilet.gif]

  • Du kannst jederzeit externe Inhalte über den Editor einfügen. Wofür benötigst du die Mediathek?


    Damit man einfach Bilder/Dateien hochladen kann etc. und kein separates System braucht. Wie kann man außerdem ein Beitragsbild festlegen das nicht in der Mediathek ist.

    JPG XL ist Standard. Aktuelle Browser können dies schon sehr lange


    "Behind a flag": Man muss es extra aktivieren (was vermutlich 99,99% der Nutzer nicht tun). Und bei Firefox funktioniert das nicht Release-Versionen. Der Grund warum das so lange dauert das zu übernehmen: libjxl ist noch sehr jung und in C geschrieben und enthält damit potentiell noch unentdeckte Sicherheitslücken, deswegen sind die Browder-Hersteller sehr vorsichtig so eine Bibliothek einzubinden.
    Natürlich hoffe ich auf den Erfolg/die Verbreitung von JXL, da ich es wie schon geschrieben für einen würdigen Nachfolger von JPEG halte, aber zum jetzigen Zeitpunkt macht es noch nicht so viel Sinn.

    Dafür ist dein C02 Fußabdruck Schrott.

    2022 mozjpeg verwenden? Habe ich mindestens seit 5 Jahren nicht mehr auf dem Server.

    mozjpeg benötigt für die Bearbeitung von 1MB fast 1 Minute und verbraucht dafür zu viel Energie. Da es den Stromverbrauch bei den Clients reduziert, gleicht es sich aus und war bis zur Einführung von WebP2 pp Jpg XL "vertretbar". Aber 2022?


    Da machst du was falsch. mozjpeg ist langsamer als libjpeg-turbo, aber nicht extrem, verwechselst du das mit Google Guetzli? Hier ist ein Test: https://www.pixelz.com/blog/guetzli-mozjpeg-comparison/ mozjpeg benötigt auf einem MacBook Air mit 1,6 GHz Intel i5 von 2015 rund 10 Sekunden um ein 48 Megapixel Bild auf 4,6 MB zu komprimieren (was weit jenseits von dem ist, was Wordpress Thumbnails an Größe/Auflösung haben). Ich weiß nicht was für einen Rechner du hast mit dem du auf diese 1 Minute gekommen bist. Durch die verringerte Dateigröße wird weniger Energie zum Lesen/Übertragen bei jeden Zugriff benötigt, daher gehe ich davon aus, dass die CO2-Bilanz nach ein bestimmten Anzahl Aufrufe langfristig besser ist.

    kann WordPress. Es gibt einen Google Entwickler bei WordPress, der ein Performance Plugin geschrieben hat. Das Plugin kann zuerst WebP aber wenn auf dem Server JPG XL ist...


    Das ich das manuell einbinden kann ist mir klar, interessant wäre ob WordPress automatisch die JXL erzeugen kann und automatisch überall dann picture verwendet.
    Noch so ein Gedanke: Wenn ich jedes Bild nach JPEG, WebP, avif und JXL komprimiere, das ist vermutlich nicht gut für den CO2-Fußabdruck. Ich würde WebP und avif rausschmeißen (zumindest eins davon).


    Ja, du hast recht, das ist mir in diesem langen String "_wp_attachment_metadata" gar nicht aufgefallen, da steht der Pfad auch drin (und die erzeugten Thumbnails, muss also nicht suchen). Werde den Code nochmal überarbeiten, damit der Eintrag auch angepasst wird.

  • So, habe den Code überarbeitet:


    Es werden nun auch die Metadaten "_wp_attached_file" und "_wp_attachment_metadata" aktualisiert, die Thumbnails werden jetzt nicht gesucht sondern aus den Metadaten gelesen und verschoben (und die Metadaten aktualisiert). Damit sollten z.B. JXL-Dateien mitverschoben werden wenn sie als Thumbnail mit aufgeführt sind. Es gibt vorher auch eine Prüfung, ob irgendeine der Dateien schon vorhanden ist, wenn ja wird nichts verschoben.

  • Anmerkungen am Rande:

    • Das Feld [FONT=Courier New]guid[/FONT] wird von WordPress nicht zum Auffinden von Dateien genutzt. Auf vielen Installationen wird das abweichen, z.B. nach http/https Umstellungen oder nach Domainumzügen. Recherchehinweis dazu siehe oben.
    • Zum Lesen/Schreiben der Metadaten in der Mediathek sollte dafür vorhandene WordPress API [FONT=Courier New]wp_get_attachment_metadata()[/FONT] bzw. [FONT=Courier New]wp_update_attachment_metadata()[/FONT] verwendet werden, damit auch alle damit verknüpften sonstigen Hooks laufen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!