{"id":24407,"date":"2021-05-18T16:25:00","date_gmt":"2021-05-18T13:25:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24407"},"modified":"2021-10-18T02:41:10","modified_gmt":"2021-10-17T23:41:10","slug":"programmgesteuertes-hochladen-von-dateien-in-wordpress","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/programmgesteuertes-hochladen-von-dateien-in-wordpress\/","title":{"rendered":"Programmgesteuertes Hochladen von Dateien in WordPress"},"content":{"rendered":"<p>Vor kurzem arbeitete ich an einem Projekt, bei dem wir Bilder in den benutzerdefinierten Ordner hochladen wollten. Wir m\u00f6chten nicht die standardm\u00e4\u00dfige WordPress-Upload-Struktur verwenden, bei der alle Ihre Bilder in einem Jahr-Monat-Format gespeichert werden. Stattdessen wollten wir einen eigenen Ordner im &#8218;uploads&#8216;-Verzeichnis erstellen und Bilder darin speichern. Dazu muss ich ein Programm schreiben, das Dateien \u00fcber das HTML-Formular hochladen kann.<\/p>\n<p>In diesem Artikel untersuchen wir, wie man Dateien programmgesteuert in WordPress hochl\u00e4dt. Ich werde Ihnen zwei M\u00f6glichkeiten zeigen, wie Sie diese Aufgabe ausf\u00fchren k\u00f6nnen. Einer erfolgt \u00fcber die eingebaute Funktion <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_upload_bits\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_upload_bits()<\/a> und ein anderer verwendet die Methode <a href=\"https:\/\/www.php.net\/manual\/en\/function.move-uploaded-file.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">move_uploaded_file()<\/a>.<\/p>\n<h3>Programmgesteuertes Hochladen von Dateien in WordPress<\/h3>\n<p>Erstellen Sie zun\u00e4chst ein einfaches HTML-Formular mit Dateieingabe und Senden-Schaltfl\u00e4che. Sie k\u00f6nnen dieses Formular auf Ihrer Seite oder Ihrem Beitrag platzieren.<\/p>\n<pre><code>&lt;h2&gt;Upload a File&lt;\/h2&gt;\n&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"file\" required \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"upload_file\" value=\"Upload\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<h4>Datei mit wp_upload_bits hochladen<\/h4>\n<p>Mit der <code>wp_upload_bits()<\/code>Funktion wird Ihre Datei im Upload-Verzeichnis gespeichert. Sie finden Ihre Datei im aktuellen Jahr-Monat-Ordner (zB wp-content\/uploads\/2020-&gt;03-&gt;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\u00fcgen Sie in Ihrer <code>functions.php<\/code>Datei den Code wie folgt hinzu.<\/p>\n<pre><code>&lt;?php\nfunction fn_upload_file() {\n\u00a0\u00a0\u00a0\u00a0if (isset($_POST['upload_file'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ save into database $upload['url]\n\u00a0\u00a0\u00a0\u00a0}\n}\nadd_action('init', 'fn_upload_file');<\/code><\/pre>\n<p>Wenn Sie die <code>$upload<\/code>Variable drucken, erhalten Sie ein Array, das das Verzeichnis und den URL-Pfad der hochgeladenen Datei enth\u00e4lt. Der Benutzer kann den URL-Pfad mit in der Datenbank speichern <code>$upload['url]<\/code>.<\/p>\n<h4>Datei in das benutzerdefinierte Verzeichnis hochladen<\/h4>\n<p>Wie oben erw\u00e4hnt, werden <code>wp_upload_bits()<\/code>Ihre Dateien mithilfe der Methode in der standardm\u00e4\u00dfigen WordPress-Ordnerhierarchie gespeichert. Aber was ist, wenn Sie Dateien in Ihrem eigenen Verzeichnis speichern m\u00f6chten?<\/p>\n<p>In diesem Fall m\u00fcssen Sie Ihren benutzerdefinierten Ordner im Verzeichnis &#8218;uploads&#8216; erstellen und Ihre Datei in diesen Ordner verschieben. Angenommen, Sie m\u00f6chten Ihre Dateien im Verzeichnis &#8218;uploads\/product-images&#8216; speichern. Im folgenden Code erstellen wir die Laufzeit des Ordners &#8218;product-images&#8216; und speichern darin Dateien. Auch diesen Code k\u00f6nnen Sie in die <code>functions.php<\/code>Datei schreiben .<\/p>\n<pre><code>function fn_upload_file() {\n\u00a0\u00a0\u00a0\u00a0if (isset($_POST['upload_file'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$upload_dir = wp_upload_dir();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! empty( $upload_dir['basedir'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user_dirname = $upload_dir['basedir'].'\/product-images';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! file_exists( $user_dirname)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wp_mkdir_p( $user_dirname );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = wp_unique_filename( $user_dirname, $_FILES['file']['name'] );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'\/'. $filename);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ save into database $upload_dir['baseurl'].'\/product-images\/'.$filename;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}\nadd_action('init', 'fn_upload_file');<\/code><\/pre>\n<p>Hier verwende ich die Methode <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_unique_filename\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_unique_filename()<\/a>, die den eindeutigen Dateinamen f\u00fcr das angegebene Verzeichnis <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_unique_filename\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">angibt<\/a>.<\/p>\n<p>Das ist es! Es dreht sich alles darum, wie man Dateien programmgesteuert in WordPress hochl\u00e4dt. Verwenden Sie eine andere Methode f\u00fcr eine \u00e4hnliche Aufgabe? Bitte teilen Sie im Kommentarbereich unten.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-verwenden-sie-die-wp_get_image_editor-methode-zum-andern-der-grose-ihrer-bilder-in-wordpress\/\" title=\"So verwenden Sie die wp_get_image_editor-Methode zum \u00c4ndern der Gr\u00f6\u00dfe Ihrer Bilder in WordPress\">So verwenden Sie die wp_get_image_editor-Methode zum \u00c4ndern der Gr\u00f6\u00dfe Ihrer Bilder in WordPress<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-registrieren-sie-benutzerdefinierte-bildgrosen-und-andern-die-grose-vorhandener-bilder-in-wordpress\/\" title=\"So registrieren Sie benutzerdefinierte Bildgr\u00f6\u00dfen und \u00e4ndern die Gr\u00f6\u00dfe vorhandener Bilder in WordPress\">So registrieren Sie benutzerdefinierte Bildgr\u00f6\u00dfen und \u00e4ndern die Gr\u00f6\u00dfe vorhandener Bilder in WordPress<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-legen-sie-ein-hervorgehobenes-bild-programmgesteuert-in-wordpress-fest\/\" title=\"So legen Sie ein hervorgehobenes Bild programmgesteuert in WordPress fest\">So legen Sie ein hervorgehobenes Bild programmgesteuert in WordPress fest<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie gehe ich mit der Aufgabe zum Hochladen von WordPress-Dateien um? In diesem Artikel erkl\u00e4ren wir, wie man Dateien programmatisch in WordPress hochl\u00e4dt. Ich zeige dir, wie man Dateien verschiebt<\/p>\n","protected":false},"author":1,"featured_media":21646,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[411,607],"tags":[845],"class_list":["post-24407","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sonstig","category-uncategorized-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24407"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24407\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21646"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}