WordPress-Datei programmgesteuert hochladen: 3 praktische Möglichkeiten
Veröffentlicht: 2022-10-20Standardmäßig unterstützt WordPress das Hochladen von Dateien über seine Medienbibliothek oder den Post-Edit-Bildschirm. Wenn Sie mit diesen integrierten Funktionen Dateien auf Ihre Website hochladen, erledigt WordPress alles für Sie. Es ermöglicht Ihnen, alle hochgeladenen Dateien anzuzeigen und sie in Ihre Posts oder Seiten einzufügen.
Sie benötigen jedoch mehr als das, wenn es um benutzerdefinierte Funktionalitäten wie das Hochladen von Dateien im Frontend geht. Es sind viele Plugins verfügbar, mit denen Sie Ihre Dateien hinzufügen, ändern und verwalten können, ohne den Code anpassen zu müssen. Natürlich sind die meisten kostenpflichtig.
Wenn Sie nicht für Plugins bezahlen möchten, kann das programmgesteuerte Hochladen von Dateien auf Ihre WordPress-Site eine Lösung sein. In diesem Artikel erklären wir Ihnen, wie Sie dies im Detail erreichen können.
Lass uns anfangen!
- Ein kleiner Hinweis
- #1 Laden Sie Dateien programmgesteuert von URLs in die Medienbibliothek hoch
- #2 Dateien über ein HTML-Formular hinzufügen
- #3 Fügen Sie Dateien programmgesteuert in die benutzerdefinierte Galerie ein
- Bonus-Tipp: Schützen Sie Ihre hochgeladenen Dateien
Ein kleiner Hinweis
Diese Methode stört hauptsächlich den Code. Bitte entscheiden Sie sich daher nur für diese Technik, wenn Sie über Programmierkenntnisse verfügen. Andernfalls kann Ihre gesamte Website mit nur einer kleinen unsachgemäßen Änderung zusammenbrechen.
Falls Sie gerade erst mit WordPress begonnen haben, empfehlen wir dringend das Gravity Forms-Plugin, um Frontend-Datei-Uploads zu akzeptieren. Oder sieh dir die Top-5-Plugins für das Hochladen von WordPress-Frontend-Dateien an. Sie können auch einen FTP-Client verwenden, um Dateien vom Backend hochzuladen.
Möchten Sie dennoch lernen, wie Sie Dateien programmgesteuert in WordPress hochladen? Weiter lesen!
#1 Laden Sie Dateien programmgesteuert von URLs in die Medienbibliothek hoch
Sie surfen im Internet und finden tolle Bilder, die Sie in Ihre WordPress-Medienbibliothek hochladen möchten. Hier ist der Weg dazu:
- Kopieren Sie die URL des Bildes.
- Betten Sie den folgenden Code in Ihre Website ein und fügen Sie die kopierte URL ein:
/** * Bild von URL programmgesteuert hochladen * * @Autor Misha Rudrastyh * @link https://rudrastyh.com/wordpress/how-to-add-images-to-media-library-from-uploaded-files-programmatically.html#upload-image-from-url */ Funktion rudr_upload_file_by_url( $image_url ) { // es erlaubt uns, die Funktionen download_url() und wp_handle_sideload() zu verwenden require_once( ABSPATH . 'wp-admin/includes/file.php' ); // in temporäres Verzeichnis herunterladen $temp_file = download_url( $image_url ); if( is_wp_error( $temp_file ) ) { falsch zurückgeben; } // Verschieben Sie die temporäre Datei in das Uploads-Verzeichnis $datei = array( 'name' => Basisname( $image_url ), 'type' => mime_content_type( $temp_file ), 'tmp_name' => $temp_file, 'Größe' => Dateigröße( $temp_file ), ); $sideload = wp_handle_sideload( $Datei, Reihe ( 'test_form' => false // Parameter 'action' muss nicht geprüft werden ) ); if( ! empty( $sideload[ 'error' ] ) ) { // Sie können eine Fehlermeldung zurückgeben, wenn Sie möchten falsch zurückgeben; } // Es ist an der Zeit, unser hochgeladenes Bild zur WordPress-Medienbibliothek hinzuzufügen $attachment_id = wp_insert_attachment( Reihe ( 'guid' => $sideload[ 'url' ], 'post_mime_type' => $sideload[ 'type' ], 'post_title' => basename( $sideload[ 'file' ] ), 'post_content' => '', 'post_status' => 'erben', ), $sideload[ 'Datei' ] ); if( is_wp_error( $attachment_id ) || ! $attachment_id ) { falsch zurückgeben; } // Metadaten aktualisieren, Bildgrößen neu generieren require_once( ABSPATH . 'wp-admin/includes/image.php' ); wp_update_attachment_metadata( $attachment_id, wp_generate_attachment_metadata( $attachment_id, $sideload[ 'file' ] ) ); gib $attachment_id zurück; }
Das ist es!
#2 Dateien über ein HTML-Formular hinzufügen
Die zweite Methode besteht darin, ein einfaches HTML-Formular mit Dateieingabe und Senden-Schaltfläche zu erstellen. Sie können dieses Formular auf jeder Seite oder jedem Beitrag platzieren, wodurch Benutzer Dateien auf Ihre Website hochladen können. Führen Sie die folgenden Schritte aus, um Dateien programmgesteuert in WordPress über ein HTML-Formular hochzuladen:
- Betten Sie den folgenden Code ein, um ein einfaches HTML-Formular zu erstellen:
1 <h2>Laden Sie eine Datei hoch</h2> 2 <form method="post" enctype="multipart/form-data"> 3 <input type="file" name="file" erforderlich /> 4 <input type="submit" name="upload_file" value="Upload" /> 5 </form>
Durch die Verwendung der Funktion wp_upload_bits() speichert WordPress Ihre hochgeladenen Dateien automatisch im Uploads -Verzeichnis. Du findest deine Dateien im aktuellen Jahr-Monat-Ordner, zum Beispiel wp-content/uploads/2020->03->your_file .

2. Fügen Sie diesen Code in Ihre Datei functions.php ein:
1 <?php 2 Funktion fn_upload_file() { 3 if ( isset($_POST['upload_file']) ) { 4 $upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']); 5 // in Datenbank speichern $upload['url] 6 } 7 } 8 add_action('init', 'fn_upload_file');
Wenn Sie die $upload- Variable drucken, erhalten Sie ein Array, das das Verzeichnis und die URLs der hochgeladenen Dateien enthält. Benutzer können diese URLs mit $upload['url] in der Datenbank finden und speichern.
Wie oben erwähnt, werden Ihre Dateien nach Verwendung der Methode wp_upload_bits() in der standardmäßigen WordPress-Ordnerhierarchie gespeichert. Aber was ist, wenn Sie Dateien in Ihrem eigenen Verzeichnis speichern möchten?
In diesem Fall sollten Sie einen benutzerdefinierten Ordner im Uploads- Verzeichnis erstellen und Dateien dorthin verschieben. Angenommen, Sie möchten Ihre Dateien im Verzeichnis uploads/product-images speichern. Mit dem folgenden Code können Sie den Ordner product-images generieren und darin Dateien speichern.
Schreiben Sie den Code in die Datei functions.php :
1 Funktion fn_upload_file() { 2 if ( isset($_POST['upload_file']) ) { 3 $upload_dir = wp_upload_dir(); 4 5 if ( ! empty( $upload_dir['basedir'] ) ) { 6 $user_dirname = $upload_dir['basedir'].'/product-images'; 7 if ( ! file_exists( $user_dirname ) ) { 8 wp_mkdir_p( $user_dirname ); 9 } 10 11 $filename = wp_unique_filename( $user_dirname, $_FILES['file']['name'] ); 12 move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename); 13 // in Datenbank speichern $upload_dir['baseurl'].'/product-images/'.$filename; 14 } fünfzehn } 16 } 17 add_action('init', 'fn_upload_file');
Hier wenden wir die Technik wp_unique_filename() an, um dem angegebenen Verzeichnis einen eindeutigen Dateinamen zu geben.
#3 Fügen Sie Dateien programmgesteuert in die benutzerdefinierte Galerie ein
Nehmen wir an, Sie haben eine Galerie als benutzerdefiniertes Metafeld namens „Galerie“ hinzugefügt. Sie laden viele Bilder über media_sideload_image() hoch . Serialisieren Sie dann ihre IDs und fügen Sie sie in die Galerie ein durch update_post_meta( $post_id , 'gallery', $serialized) ;
Wenn Sie sich den Beitrag auf der Seite „ Beitrag bearbeiten “ im Backend ansehen, sehen Sie folglich alle hochgeladenen Fotos. Diese Bilder werden jedoch nicht in einer Diashow im Frontend angezeigt, bis Sie im Backend auf Aktualisieren klicken.
Wie können Sie also programmgesteuert auf die Schaltfläche „ Aktualisieren “ klicken, nachdem Sie die Galerie erstellt haben? Folgen Sie einfach der folgenden Anleitung:
- Nachdem Sie die Beitragsgalerie aktualisiert haben, fügen Sie diesen Code hinzu, um die Schaltfläche „ Aktualisieren “ programmgesteuert auszuwählen:
wp_update_post(['ID'=>$post_id]);
2. Aktualisieren Sie den Cache, um die Such- und Filterfunktionen zu verwenden:
do_action('search_filter_update_post_cache', $post_id);
Bonus-Tipp: Schützen Sie Ihre hochgeladenen Dateien
Gibt es Möglichkeiten, unbefugten Zugriff auf Ihre hochgeladenen Dateien zu verhindern? Die Antwort ist ja. Weitere Informationen finden Sie in unserer ausführlichen Anleitung zu 21 nützlichen .htaccess-Tricks zum Sichern von WordPress-Dateien. Da .htaccess eine wichtige Datei ist, die dafür sorgt, dass Ihre Website reibungslos läuft, seien Sie vorsichtig, wenn Sie Änderungen vornehmen.
Installieren Sie andererseits das PDA Gold-Plug-in, wenn Sie sich in Ihren Programmierkenntnissen nicht sicher sind. Es wird Ihnen helfen, den Ärger zu bewältigen, ohne sich Gedanken über die Beeinträchtigung der .htaccess-Datei machen zu müssen.
Eine weitere erwägenswerte Methode ist der Passwortschutz Ihrer WordPress-Dateien. Weitere Informationen finden Sie in unserem Artikel.
Laden Sie Dateien wie ein Experte programmgesteuert in WordPress hoch!
Wir haben Ihnen 3 Möglichkeiten gezeigt, Dateien programmgesteuert in WordPress hochzuladen. Jetzt können Sie mühelos Dateien in die Medienbibliothek oder über ein HTML-Frontend-Datei-Upload-Formular hochladen. Es ist auch möglich, Dateien zu Ihrer benutzerdefinierten Galerie hinzuzufügen. Und vergessen Sie vor allem nicht, Ihre WordPress-Dateien entweder mit Code oder durch die Installation von Plugins zu schützen.
Es geht darum, Dateien programmgesteuert in WordPress hochzuladen. Kennst du noch andere Methoden? Bitte teilen Sie uns dies im Kommentarbereich unten mit.