✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Carica file a livello di codice in WordPress

23

Di recente, stavo lavorando a un progetto in cui volevamo caricare le immagini nella cartella personalizzata. Non vogliamo utilizzare la struttura di caricamento predefinita di WordPress in cui tutte le tue immagini vengono archiviate in un formato anno-mese. Invece, volevamo creare la nostra cartella all’interno della directory "uploads" e archiviare le immagini al suo interno. Mi richiede di scrivere un programma in grado di caricare file tramite il modulo HTML.

In questo articolo, studiamo come caricare file a livello di codice in WordPress. Ti mostrerò due modi per eseguire questo compito. Uno è tramite la funzione wp_upload_bits() incorporata e un altro utilizza il metodo move_uploaded_file().

Carica file a livello di codice in WordPress

Per iniziare, crea un semplice modulo HTML con l’input del file e il pulsante di invio. Puoi inserire questo modulo nella tua pagina o nel tuo post.

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

Carica il file usando wp_upload_bits

Usando la wp_upload_bits()funzione, il tuo file verrà archiviato nella directory dei caricamenti. Troverai il tuo file all’interno della cartella del mese dell’anno corrente (ad es. wp-content/uploads/2020->03->your_file). Questa funzione non sposterà un file sfogliato nella cartella di caricamento. Invece, creerà un nuovo file con il contenuto dei file. L’uso di questo metodo è semplice. Nel tuo functions.phpfile, aggiungi il codice come segue.

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

Se stampi la $uploadvariabile, otterrai un array che contiene la directory e il percorso URL del file caricato. L’utente può salvare il percorso dell’URL nel database utilizzando $upload['url].

Carica file nella directory personalizzata

Come accennato in precedenza, utilizzando il wp_upload_bits()metodo i tuoi file verranno archiviati utilizzando la gerarchia di cartelle predefinita di WordPress. Ma cosa succede se si desidera archiviare i file all’interno della propria directory?

In tal caso, devi creare la tua cartella personalizzata nella directory "uploads" e spostare il file in quella cartella. Supponiamo che tu voglia archiviare i tuoi file nella directory "uploads/product-images". Nel codice seguente, creeremo il runtime della cartella "product-images" e memorizzeremo i file al suo interno. Questo codice puoi anche scrivere nel functions.phpfile.

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

Qui, sto usando il metodo wp_unique_filename() che fornisce il nome file univoco per la directory specificata.

Questo è tutto! Si tratta di come caricare file a livello di codice in WordPress. Stai usando qualche altro metodo per un compito simile? Si prega di condividere nella sezione commenti qui sotto.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More