{"id":24400,"date":"2021-05-18T16:15:00","date_gmt":"2021-05-18T13:15:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24400"},"modified":"2021-10-17T20:51:30","modified_gmt":"2021-10-17T17:51:30","slug":"lataa-tiedostot-ohjelmallisesti-wordpressiin","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/lataa-tiedostot-ohjelmallisesti-wordpressiin\/","title":{"rendered":"Lataa tiedostot ohjelmallisesti WordPressiin"},"content":{"rendered":"<p>Viime aikoina ty\u00f6skentelin projektissa, jossa halusimme ladata kuvia mukautettuun kansioon. Emme halua k\u00e4ytt\u00e4\u00e4 oletusarvoista WordPress-latausrakennetta, jossa kaikki kuvasi tallennetaan vuoden ja kuukauden muodossa. Sen sijaan halusimme luoda oman kansion lataamishakemistoon ja tallentaa siihen kuvia. Se vaatii minua kirjoittamaan ohjelman, joka voi ladata tiedostoja HTML-lomakkeen kautta.<\/p>\n<p>T\u00e4ss\u00e4 artikkelissa tutkitaan tiedostojen lataamista ohjelmallisesti WordPress-sovelluksessa. N\u00e4yt\u00e4n sinulle kaksi tapaa suorittaa t\u00e4m\u00e4 teht\u00e4v\u00e4. Yksi tapahtuu sis\u00e4\u00e4nrakennetun <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_upload_bits\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_upload_bits()<\/a> -funktion kautta ja toinen k\u00e4ytt\u00e4\u00e4 <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> -menetelm\u00e4\u00e4.<\/p>\n<h3>Lataa tiedostot ohjelmallisesti WordPressiin<\/h3>\n<p>Aloita luomalla yksinkertainen HTML-lomake, jossa on tiedostojen sy\u00f6tt\u00f6- ja l\u00e4hetyspainike. Voit sijoittaa t\u00e4m\u00e4n lomakkeen sivullesi tai viestiisi.<\/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>L\u00e4het\u00e4 tiedosto wp_upload_bits-tiedostolla<\/h4>\n<p><code>wp_upload_bits()<\/code>Funktiota k\u00e4ytt\u00e4m\u00e4ll\u00e4 tiedosto tallennetaan lataushakemistoon. Tiedostosi l\u00f6ytyy kuluvan vuoden kuukauden kansiosta (esim. Wp-content \/ uploads \/ 2020-&gt; 03-&gt; your_file). T\u00e4m\u00e4 toiminto ei siirr\u00e4 selattua tiedostoa l\u00e4hetyskansioon. Sen sijaan se luo uuden tiedoston tiedostojen sis\u00e4ll\u00f6ll\u00e4. T\u00e4m\u00e4n menetelm\u00e4n k\u00e4ytt\u00f6 on yksinkertaista. Teid\u00e4n <code>functions.php<\/code>tiedosto, lis\u00e4t\u00e4 koodin seuraavasti.<\/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>Jos tulostat <code>$upload<\/code>muuttujan, saat taulukon, joka sis\u00e4lt\u00e4\u00e4 hakemiston ja ladatun tiedoston URL-polun. K\u00e4ytt\u00e4j\u00e4 voi tallentaa URL-polun tietokantaan k\u00e4ytt\u00e4m\u00e4ll\u00e4 <code>$upload['url]<\/code>.<\/p>\n<h4>L\u00e4het\u00e4 tiedosto mukautettuun hakemistoon<\/h4>\n<p>Kuten edell\u00e4 mainittiin, <code>wp_upload_bits()<\/code>menetelm\u00e4ll\u00e4 tiedostot tallennetaan k\u00e4ytt\u00e4m\u00e4ll\u00e4 WordPress-oletuskansiohierarkiaa. Mutta ent\u00e4 jos haluat tallentaa tiedostot omaan hakemistoon?<\/p>\n<p>Siin\u00e4 tapauksessa sinun on luotava mukautettu kansio lataamishakemistoon ja siirrett\u00e4v\u00e4 tiedosto kyseiseen kansioon. Oletetaan, ett\u00e4 haluat tallentaa tiedostosi hakemistoon &#8217;uploads \/ product-images&#8217;. Alla olevaan koodiin luomme &#8217;product-images&#8217; -kansion ajonaikaisen ajan ja tallennamme tiedostot siihen. T\u00e4m\u00e4n koodin voit my\u00f6s kirjoittaa <code>functions.php<\/code>tiedostoon.<\/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>T\u00e4ss\u00e4 k\u00e4yt\u00e4n <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_unique_filename\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_unique_filename ()<\/a> -menetelm\u00e4\u00e4, joka antaa yksil\u00f6llisen tiedostonimen annetulle hakemistolle.<\/p>\n<p>Se siit\u00e4! Kyse on siit\u00e4, miten tiedostoja l\u00e4hetet\u00e4\u00e4n ohjelmallisesti WordPressiin. K\u00e4yt\u00e4tk\u00f6 muuta menetelm\u00e4\u00e4 samankaltaiseen teht\u00e4v\u00e4\u00e4n? Ole hyv\u00e4 ja jaa alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-kayttaa-wp_get_image_editor-menetelmaa-kuviesi-koon-muuttamiseksi-wordpressissa\/\" title=\"Kuinka k\u00e4ytt\u00e4\u00e4 wp_get_image_editor -menetelm\u00e4\u00e4 kuviesi koon muuttamiseksi WordPressiss\u00e4\">Kuinka k\u00e4ytt\u00e4\u00e4 wp_get_image_editor -menetelm\u00e4\u00e4 kuviesi koon muuttamiseksi WordPressiss\u00e4<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-rekisteroida-mukautetut-kuvakoot-ja-muuttaa-olemassa-olevien-kuvien-kokoa-wordpressissa\/\" title=\"Kuinka rekister\u00f6id\u00e4 mukautetut kuvakoot ja muuttaa olemassa olevien kuvien kokoa WordPressiss\u00e4\">Kuinka rekister\u00f6id\u00e4 mukautetut kuvakoot ja muuttaa olemassa olevien kuvien kokoa WordPressiss\u00e4<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-asettaa-esilla-oleva-kuva-ohjelmallisesti-wordpressiin\/\" title=\"Kuinka asettaa esill\u00e4 oleva kuva ohjelmallisesti WordPressiin\">Kuinka asettaa esill\u00e4 oleva kuva ohjelmallisesti WordPressiin<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kuinka k\u00e4sitell\u00e4 WordPress-tiedostojen latausteht\u00e4v\u00e4\u00e4? T\u00e4ss\u00e4 artikkelissa kerrotaan, miten tiedostojen ohjelmatiedosto ladataan WordPressiin. N\u00e4yt\u00e4n, kuinka tiedostoja siirret\u00e4\u00e4n<\/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":[414,610],"tags":[843],"class_list":["post-24400","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sekalaisia","category-uncategorized-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=24400"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24400\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21646"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=24400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=24400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=24400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}