wake-up-neo.net

Bild beim Upload mit Datums- und Zeitstempel umbenennen?

Ich versuche, Bilder während des Uploads umzubenennen, um Probleme mit Bilddateinamen zu vermeiden, die Sonderzeichen und Dateinamen mit nicht-lateinischen Zeichen enthalten.

Ich fand diese Funktion zum Umbenennen von Bildern in WordPress :

function sanitize_file_uploads( $file ){
    $file['name'] = sanitize_file_name($file['name']);
    $file['name'] = preg_replace("/[^a-zA-Z0-9\_\-\.]/", "", $file['name']);
    $file['name'] = strtolower($file['name']);
    add_filter('sanitize_file_name', 'remove_accents');

    return $file;
}
add_filter('wp_handle_upload_prefilter', 'sanitize_file_uploads');

Dabei werden nicht akzeptierte Sonderzeichen entfernt, der Name in Kleinbuchstaben umgewandelt und Akzente entfernt. Wenn das Bild beispielsweise nur nicht-lateinische Zeichen enthält, wird der Name der Bilddatei wie folgt erstellt: jpg-width-heigh.jpg (Breite und Höhe sind die Abmessungen des Bildes).

Ich hätte gerne einen Namen für die Bilddatei basierend auf dem aktuellen Datum und der aktuellen Uhrzeit wie: Jahr-Monat-Tag-Stunde-Minute-Sekunde.jpg

Ich weiß, dass es einen Plug gibt, der das Umbenennen von Dateien beim Hochladen ausführen kann, aber ich möchte das Plugin nicht nur dafür verwenden.

Hat jemand eine Lösung, Idee?

2
Advanced SEO

Sie könnten z.B. Überprüfen Sie nach der benutzerdefinierten Bereinigung die Werte für Dateiname und Erweiterung in der pathinfo.

Beispiel:

Wenn Dateiname leer und Erweiterung nicht leer ist, fügen Sie die formatierte aktuelle Zeit als Dateinamen hinzu:

$info = pathinfo( $file['name'] );
if( empty( $info['filename'] ) && ! empty( $info['extension'] ) )
    $file['name'] = sprintf( '%s.%s', current_time( 'Y-m-d-H-i-s' ), $info['extension'] );

Wenn die Datei áéíú.png mit Ihrer benutzerdefinierten Bereinigung in .png entfernt wird, wird sie in 2016-08-14-10-54-07.png umbenannt.

Beachten Sie, dass wp_unique_filename(), wenn Sie eine solche Datei innerhalb derselben Sekunde importieren, -1 zum Dateinamen hinzufügt und in 2016-08-14-10-54-07-1.png umbenennt. Die dritte Datei würde -2 angehängt bekommen und so weiter.

Ich hoffe, Sie können dies weiter an Ihre Bedürfnisse anpassen.

4
birgire