Programmgesteuertes Hochladen von Dateien in WordPress
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.php
Datei 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 $upload
Variable 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.php
Datei 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
- So verwenden Sie die wp_get_image_editor-Methode zum Ändern der Größe Ihrer Bilder in WordPress
- So registrieren Sie benutzerdefinierte Bildgrößen und ändern die Größe vorhandener Bilder in WordPress
- So legen Sie ein hervorgehobenes Bild programmgesteuert in WordPress fest