Ich möchte Dateien während des Uploads umbenennen und ihre Namen auf den Post-Slug setzen, an den die Dateien angehängt werden, sowie einige zufällige Zeichen (ein einfacher inkrementeller Zähler reicht völlig aus), um die Dateinamen zu unterscheiden.
Mit anderen Worten, wenn ich Bilder zu dem Beitrag hochlade / anhänge, dessen Seiten-Slug "Test-Page-Slug" ist, möchte ich, dass die Bilder im laufenden Betrieb umbenannt werden in test-page-slug-[C].[extension]
:
- test-page-slug-1.jpg
- test-page-slug-2.jpg
- usw., es spielt keine Rolle, wie die ursprünglichen Dateinamen lauteten.
Es gibt dieses Plugin, Custom Upload Dir :
Mit diesem Plugin können Sie Pfade aus zusätzlichen Variablen wie Post-Titel, ID, Kategorie, Post-Autor, Post-Datum und vielem mehr erstellen.
Wie kann ich das Gleiche mit Dateinamen tun?
Antworten:
Sie sollten sich an den Filter wp_handle_upload_prefilter anschließen (zu dem ich keine Dokumentation finden kann, der aber ziemlich einfach zu sein scheint). Ich habe das vor Ort ausprobiert und es scheint für mich zu funktionieren:
In meinen Tests scheint es, dass Posts nur dann einen Slug haben, wenn Sie hübsche Permalinks aktiviert haben. Daher habe ich vor dem Umbenennen der Datei eine Überprüfung hinzugefügt, um sicherzustellen, dass ein Slug vorhanden ist. Sie sollten auch den Dateityp überprüfen, was ich hier nicht getan habe - ich habe nur angenommen, dass es sich um ein JPG handelt.
BEARBEITEN
Wie im Kommentar angefordert, ändert diese zusätzliche Funktion einige der Metaattribute für das hochgeladene Bild. Es scheint jedoch nicht möglich zu sein, den ALT-Text festzulegen, und aus irgendeinem Grund wird der Wert, den Sie als "Beschriftung" festgelegt haben, tatsächlich als Beschreibung zugewiesen. Du musst damit Affen sein. Ich habe diesen Filter in der Funktion wp_read_image_metadata () gefunden, die sich in wp-admin / includes / image.php befindet. Darauf stützen sich die Funktionen zum Hochladen von Medien und wp_generate_attachment_metadata, um Metadaten aus dem Bild abzurufen. Sie können dort einen Blick darauf werfen, wenn Sie weitere Einblicke wünschen.
Bearbeitet am 04.04.2012, um die Post-ID aus dem REQUEST-Objekt zu ziehen, anstatt GET und POST nacheinander zu überprüfen. Basierend auf Vorschlägen in den Kommentaren.
quelle