✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Lataa tiedostot ohjelmallisesti WordPressiin

23

Viime aikoina työskentelin projektissa, jossa halusimme ladata kuvia mukautettuun kansioon. Emme halua käyttää 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.

Tässä artikkelissa tutkitaan tiedostojen lataamista ohjelmallisesti WordPress-sovelluksessa. Näytän sinulle kaksi tapaa suorittaa tämä tehtävä. Yksi tapahtuu sisäänrakennetun wp_upload_bits() -funktion kautta ja toinen käyttää move_uploaded_file () -menetelmää.

Lataa tiedostot ohjelmallisesti WordPressiin

Aloita luomalla yksinkertainen HTML-lomake, jossa on tiedostojen syöttö- ja lähetyspainike. Voit sijoittaa tämän lomakkeen sivullesi tai viestiisi.

<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>

Lähetä tiedosto wp_upload_bits-tiedostolla

wp_upload_bits()Funktiota käyttämällä tiedosto tallennetaan lataushakemistoon. Tiedostosi löytyy kuluvan vuoden kuukauden kansiosta (esim. Wp-content / uploads / 2020-> 03-> your_file). Tämä toiminto ei siirrä selattua tiedostoa lähetyskansioon. Sen sijaan se luo uuden tiedoston tiedostojen sisällöllä. Tämän menetelmän käyttö on yksinkertaista. Teidän functions.phptiedosto, lisätä koodin seuraavasti.

<?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');

Jos tulostat $uploadmuuttujan, saat taulukon, joka sisältää hakemiston ja ladatun tiedoston URL-polun. Käyttäjä voi tallentaa URL-polun tietokantaan käyttämällä $upload['url].

Lähetä tiedosto mukautettuun hakemistoon

Kuten edellä mainittiin, wp_upload_bits()menetelmällä tiedostot tallennetaan käyttämällä WordPress-oletuskansiohierarkiaa. Mutta entä jos haluat tallentaa tiedostot omaan hakemistoon?

Siinä tapauksessa sinun on luotava mukautettu kansio lataamishakemistoon ja siirrettävä tiedosto kyseiseen kansioon. Oletetaan, että haluat tallentaa tiedostosi hakemistoon ‘uploads / product-images’. Alla olevaan koodiin luomme ‘product-images’ -kansion ajonaikaisen ajan ja tallennamme tiedostot siihen. Tämän koodin voit myös kirjoittaa functions.phptiedostoon.

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');

Tässä käytän wp_unique_filename () -menetelmää, joka antaa yksilöllisen tiedostonimen annetulle hakemistolle.

Se siitä! Kyse on siitä, miten tiedostoja lähetetään ohjelmallisesti WordPressiin. Käytätkö muuta menetelmää samankaltaiseen tehtävään? Ole hyvä ja jaa alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja