Télécharger des fichiers par programme dans WordPress
Récemment, je travaillais sur un projet où nous voulions télécharger des images dans le dossier personnalisé. Nous ne voulons pas utiliser la structure de téléchargement par défaut de WordPress où toutes vos images sont stockées au format année-mois. Au lieu de cela, nous voulions créer notre propre dossier dans le répertoire « uploads » et y stocker des images. Cela m’oblige à écrire un programme qui peut télécharger des fichiers via le formulaire HTML.
Dans cet article, nous étudions comment télécharger des fichiers par programme dans WordPress. Je vais vous montrer deux façons d’effectuer cette tâche. L’ un utilise la fonction wp_upload_bits() intégrée et l’autre utilise la méthode move_uploaded_file().
Télécharger des fichiers par programme dans WordPress
Pour commencer, créez un formulaire HTML simple avec une entrée de fichier et un bouton d’envoi. Vous pouvez placer ce formulaire sur votre page ou votre publication.
<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>
Télécharger le fichier à l’aide de wp_upload_bits
En utilisant la wp_upload_bits()
fonction, votre fichier sera stocké dans le répertoire de téléchargement. Vous trouverez votre fichier dans le dossier du mois de l’année en cours (par ex. wp-content/uploads/2020->03->votre_fichier). Cette fonction ne déplacera pas un fichier parcouru vers le dossier de téléchargement. Au lieu de cela, il créera un nouveau fichier avec le contenu des fichiers. L’utilisation de cette méthode est simple. Dans votre functions.php
fichier, ajoutez le code comme suit.
<?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');
Si vous imprimez la $upload
variable, vous obtiendrez un tableau contenant le répertoire et le chemin URL du fichier téléchargé. L’utilisateur peut enregistrer le chemin de l’URL dans la base de données à l’aide de $upload['url]
.
Télécharger le fichier dans le répertoire personnalisé
Comme mentionné ci-dessus, en utilisant la wp_upload_bits()
méthode, vos fichiers seront stockés en utilisant la hiérarchie de dossiers WordPress par défaut. Mais que se passe-t-il si vous souhaitez stocker des fichiers dans votre propre répertoire ?
Dans ce cas, vous devez créer votre dossier personnalisé dans le répertoire « uploads » et déplacer votre fichier dans ce dossier. Supposons que vous souhaitiez stocker vos fichiers dans le répertoire ‘uploads/product-images’. Dans le code ci-dessous, nous allons créer un runtime de dossier ‘product-images’ et y stocker des fichiers. Ce code aussi vous pouvez écrire dans le functions.php
fichier.
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');
Ici, j’utilise la méthode wp_unique_filename() qui donne le nom de fichier unique pour le répertoire donné.
C’est ça! Il s’agit de savoir comment télécharger des fichiers par programme dans WordPress. Utilisez-vous une autre méthode pour une tâche similaire? S’il vous plaît partager dans la section commentaire ci-dessous.
Articles Liés
- Comment utiliser la méthode wp_get_image_editor pour redimensionner vos images dans WordPress
- Comment enregistrer des tailles d’image personnalisées et redimensionner des images existantes dans WordPress
- Comment définir une image en vedette par programme dans WordPress