✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Ladda upp filer programmatiskt i WordPress

18

Nyligen arbetade jag med ett projekt där vi ville ladda upp bilder i den anpassade mappen. Vi vill inte använda WordPress-uppladdningsstrukturen som standard där alla dina bilder lagras i ett månadsformat. Istället ville vi skapa vår egen mapp i katalogen "uppladdningar" och lagra bilder i den. Det kräver att jag skriver ett program som kan ladda upp filer via HTML-formuläret.

I den här artikeln studerar vi hur man laddar upp filer programmatiskt i WordPress. Jag kommer att visa dig två sätt att utföra denna uppgift. En är genom inbyggd funktion wp_upload_bits() och en annan använder metoden move_uploaded_file ().

Ladda upp filer programmatiskt i WordPress

För att komma igång, skapa ett enkelt HTML-formulär med filinmatning och skicka-knappen. Du kan placera det här formuläret på din sida eller inlägg.

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

Ladda upp fil med wp_upload_bits

Med wp_upload_bits()funktionen lagras din fil i uppladdningskatalogen. Du hittar din fil i den aktuella månadsmappen (till exempel wp-content / uploads / 2020-> 03-> your_file). Denna funktion flyttar inte en webbläsad fil till uppladdningsmappen. Istället skapar den en ny fil med innehållet i filerna. Användningen av denna metod är enkel. functions.phpLägg till koden i din fil enligt följande.

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

Om du skriver ut $uploadvariabeln får du en matris som innehåller katalog och URL-väg för den uppladdade filen. Användaren kan spara URL-sökvägen i databasen med $upload['url].

Ladda upp filen i den anpassade katalogen

Som nämnts ovan, med hjälp av wp_upload_bits()metoden lagras dina filer med standardhierarkin i WordPress-mappen. Men tänk om du vill lagra filer i din egen katalog?

I så fall måste du skapa din anpassade mapp i katalogen "uppladdningar" och flytta din fil till den mappen. Låt oss säga att du vill lagra dina filer i katalogen ‘uppladdningar / produktbilder’. I koden nedan skapar vi körtid för produktbilder och lagrar filer inuti den. Denna kod kan du också skriva i functions.phpfilen.

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

Här använder jag metoden wp_unique_filename () som ger det unika filnamnet för den angivna katalogen.

Det är allt! Det handlar om hur man laddar upp filer programmatiskt i WordPress. Använder du någon annan metod för en liknande uppgift? Vänligen dela i kommentarsektionen nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer