✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Programmgesteuertes Hochladen von Dateien in WordPress

21

Vor kurzem arbeitete ich an einem Projekt, bei dem wir Bilder in den benutzerdefinierten Ordner hochladen wollten. Wir möchten nicht die standardmäßige WordPress-Upload-Struktur verwenden, bei der alle Ihre Bilder in einem Jahr-Monat-Format gespeichert werden. Stattdessen wollten wir einen eigenen Ordner im ‘uploads’-Verzeichnis erstellen und Bilder darin speichern. Dazu muss ich ein Programm schreiben, das Dateien über das HTML-Formular hochladen kann.

In diesem Artikel untersuchen wir, wie man Dateien programmgesteuert in WordPress hochlädt. Ich werde Ihnen zwei Möglichkeiten zeigen, wie Sie diese Aufgabe ausführen können. Einer erfolgt über die eingebaute Funktion wp_upload_bits() und ein anderer verwendet die Methode move_uploaded_file().

Programmgesteuertes Hochladen von Dateien in WordPress

Erstellen Sie zunächst ein einfaches HTML-Formular mit Dateieingabe und Senden-Schaltfläche. Sie können dieses Formular auf Ihrer Seite oder Ihrem Beitrag platzieren.

<h2>Upload a File</h2>
<form method="post" enctype="multipart/form-data">
    <input type="file" name="file" required />
    <input type="submit" name="upload_file" value="Upload" />
</form>

Datei mit wp_upload_bits hochladen

Mit der wp_upload_bits()Funktion wird Ihre Datei im Upload-Verzeichnis gespeichert. Sie finden Ihre Datei im aktuellen Jahr-Monat-Ordner (zB wp-content/uploads/2020->03->your_file). Diese Funktion verschiebt eine durchsuchte Datei nicht in den Upload-Ordner. Stattdessen wird eine neue Datei mit dem Inhalt von Dateien erstellt. Die Anwendung dieser Methode ist einfach. Fügen Sie in Ihrer functions.phpDatei den Code wie folgt hinzu.

<?php
function fn_upload_file() {
    if (isset($_POST['upload_file'])) {
        $upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']);
        // save into database $upload['url]
    }
}
add_action('init', 'fn_upload_file');

Wenn Sie die $uploadVariable drucken, erhalten Sie ein Array, das das Verzeichnis und den URL-Pfad der hochgeladenen Datei enthält. Der Benutzer kann den URL-Pfad mit in der Datenbank speichern $upload['url].

Datei in das benutzerdefinierte Verzeichnis hochladen

Wie oben erwähnt, werden wp_upload_bits()Ihre Dateien mithilfe der Methode in der standardmäßigen WordPress-Ordnerhierarchie gespeichert. Aber was ist, wenn Sie Dateien in Ihrem eigenen Verzeichnis speichern möchten?

In diesem Fall müssen Sie Ihren benutzerdefinierten Ordner im Verzeichnis ‘uploads’ erstellen und Ihre Datei in diesen Ordner verschieben. Angenommen, Sie möchten Ihre Dateien im Verzeichnis ‘uploads/product-images’ speichern. Im folgenden Code erstellen wir die Laufzeit des Ordners ‘product-images’ und speichern darin Dateien. Auch diesen Code können Sie in die functions.phpDatei schreiben .

function fn_upload_file() {
    if (isset($_POST['upload_file'])) {
        $upload_dir = wp_upload_dir();
 
        if (! empty( $upload_dir['basedir'])) {
            $user_dirname = $upload_dir['basedir'].'/product-images';
            if (! file_exists( $user_dirname)) {
                wp_mkdir_p( $user_dirname );
            }
 
            $filename = wp_unique_filename( $user_dirname, $_FILES['file']['name'] );
            move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename);
            // save into database $upload_dir['baseurl'].'/product-images/'.$filename;
        }
    }
}
add_action('init', 'fn_upload_file');

Hier verwende ich die Methode wp_unique_filename(), die den eindeutigen Dateinamen für das angegebene Verzeichnis angibt.

Das ist es! Es dreht sich alles darum, wie man Dateien programmgesteuert in WordPress hochlädt. Verwenden Sie eine andere Methode für eine ähnliche Aufgabe? Bitte teilen Sie im Kommentarbereich unten.

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen