Télécharger un fichier WordPress par programme : 3 façons pratiques
Publié: 2022-10-20Par défaut, WordPress prend en charge le téléchargement de fichiers via sa médiathèque ou son écran de post-édition. Lorsque vous téléchargez des fichiers sur votre site Web à l'aide de ces fonctions intégrées, WordPress gère tout pour vous. Il vous permet de visualiser tous les fichiers téléchargés et de les insérer dans vos publications ou pages.
Cependant, vous avez besoin de plus que cela en ce qui concerne les fonctionnalités personnalisées, telles que les téléchargements de fichiers frontaux. Il existe de nombreux plugins disponibles qui vous aident à ajouter, modifier et gérer vos fichiers sans ajuster le code. Bien sûr, la plupart d'entre eux exigent des frais.
Si vous ne voulez pas payer pour les plugins, le téléchargement de fichiers par programmation sur votre site WordPress peut être une solution. Dans cet article, nous vous expliquerons en détail comment y parvenir.
Commençons!
- Un petit avis
- # 1 Télécharger des fichiers dans la médiathèque par programme à partir d'URL
- #2 Ajouter des fichiers via un formulaire HTML
- #3 Insérer des fichiers dans la galerie personnalisée par programme
- Astuce bonus : protégez vos téléchargements de fichiers
Un petit avis
Cette méthode interfère principalement avec le code. Veuillez donc opter pour cette technique uniquement si vous avez des connaissances en codage. Sinon, l'ensemble de votre site peut s'effondrer avec un seul petit changement inapproprié.
Si vous venez de commencer avec WordPress, nous vous recommandons fortement le plugin Gravity Forms pour accepter les téléchargements de fichiers frontaux. Ou consultez les 5 meilleurs plugins pour les téléchargements de fichiers frontaux WordPress. Vous pouvez également utiliser un client FTP pour télécharger des fichiers depuis le backend.
Pourtant, vous voulez apprendre à télécharger des fichiers par programmation dans WordPress ? Continue de lire!
# 1 Télécharger des fichiers dans la médiathèque par programme à partir d'URL
Vous naviguez sur Internet et trouvez de superbes images que vous souhaitez télécharger dans votre médiathèque WordPress. Voici l'itinéraire pour le faire :
- Copiez l'URL de l'image.
- Intégrez le code ci-dessous à votre site et insérez l'URL que vous avez copié :
/** * Télécharger l'image à partir de l'URL par programmation * * @author Misha Rudrastyh * @link https://rudrastyh.com/wordpress/how-to-add-images-to-media-library-from-uploaded-files-programmatically.html#upload-image-from-url */ fonction rudr_upload_file_by_url( $image_url ) { // il nous permet d'utiliser les fonctions download_url() et wp_handle_sideload() require_once( ABSPATH . 'wp-admin/includes/file.php' ); // télécharger dans le répertoire temporaire $temp_file = download_url( $image_url ); if( is_wp_error( $temp_file ) ) { retourner faux ; } // déplace le fichier temporaire dans le répertoire des téléchargements $fichier = tableau( 'nom' => nom de base( $image_url ), 'type' => mime_content_type( $temp_file ), 'tmp_name' => $temp_file, 'taille' => taille du fichier( $temp_file ), ); $sideload = wp_handle_sideload( $fichier, déployer( 'test_form' => false // pas besoin de vérifier le paramètre 'action' ) ); if( ! empty( $sideload[ 'error' ] ) ) { // vous pouvez renvoyer un message d'erreur si vous le souhaitez retourner faux ; } // il est temps d'ajouter notre image téléchargée dans la médiathèque WordPress $attachment_id = wp_insert_attachment( déployer( 'guid' => $sideload[ 'url' ], 'post_mime_type' => $sideload[ 'type' ], 'post_title' => basename( $sideload[ 'file' ] ), 'post_content' => '', 'post_status' => 'hériter', ), $sideload[ 'fichier' ] ); if( is_wp_error( $attachment_id ) || ! $attachment_id ) { retourner faux ; } // met à jour les métadonnées, régénère les tailles d'image require_once( ABSPATH . 'wp-admin/includes/image.php' ); wp_update_attachment_metadata( $attachment_id, wp_generate_attachment_metadata( $attachment_id, $sideload[ 'file' ] ) ); retourne $attachment_id ; }
C'est ça!
#2 Ajouter des fichiers via un formulaire HTML
La deuxième méthode consiste à créer un formulaire HTML simple avec une entrée de fichier et un bouton de soumission. Vous pouvez placer ce formulaire sur n'importe quelle page ou publication, ce qui permet aux utilisateurs de télécharger des fichiers sur votre site. Suivez les étapes suivantes pour télécharger des fichiers par programmation dans WordPress via un formulaire HTML :
- Intégrez le code suivant pour créer un formulaire HTML simple :
1 <h2>Télécharger un fichier</h2> 2 <form method="post" enctype="multipart/form-data"> 3 <input type="file" name="file" requis /> 4 <input type="submit" name="upload_file" value="Télécharger" /> 5 </form>
En utilisant la fonction wp_upload_bits() , WordPress stockera automatiquement vos fichiers téléchargés dans le répertoire des téléchargements . Vous pouvez trouver vos fichiers dans le dossier année-mois en cours, par exemple, wp-content/uploads/2020->03->your_file .

2. Insérez ce code dans votre fichier functions.php :
1 <?php 2 fonction fn_upload_file() { 3 si ( isset($_POST['upload_file']) ) { 4 $upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']); 5 // enregistre dans la base de données $upload['url] 6 } sept } 8 add_action('init', 'fn_upload_file');
Si vous imprimez la variable $upload , vous obtiendrez un tableau contenant le répertoire et les URL des fichiers téléchargés. Les utilisateurs peuvent trouver et enregistrer ces URL dans la base de données en utilisant $upload['url] .
Comme mentionné ci-dessus, une fois que vous avez utilisé la méthode wp_upload_bits() , vos fichiers seront stockés dans la hiérarchie de dossiers WordPress par défaut. Mais que se passe-t-il si vous souhaitez enregistrer des fichiers dans votre propre répertoire ?
Dans cette situation, vous devez créer un dossier personnalisé dans le répertoire des téléchargements et y déplacer les fichiers. Supposons que vous souhaitiez stocker vos fichiers dans le répertoire uploads/product-images . Avec le code ci-dessous, vous pouvez générer le dossier product-images et y stocker des fichiers.
Écrivez le code dans le fichier functions.php :
1 fonction fn_upload_file() { 2 si ( isset($_POST['upload_file']) ) { 3 $upload_dir = wp_upload_dir(); 4 5 if ( ! empty( $upload_dir['basedir'] ) ) { 6 $user_dirname = $upload_dir['basedir'].'/product-images'; 7 if ( ! file_exists( $user_dirname ) ) { 8 wp_mkdir_p( $user_dirname ); 9 } dix 11 $filename = wp_unique_filename( $user_dirname, $_FILES['file']['name'] ); 12 move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename); 13 // enregistre dans la base de données $upload_dir['baseurl'].'/product-images/'.$filename; 14 } 15 } 16 } 17 add_action('init', 'fn_upload_file');
Ici, nous appliquons la technique wp_unique_filename() pour donner un nom de fichier unique au répertoire donné.
#3 Insérer des fichiers dans la galerie personnalisée par programme
Supposons que vous ayez ajouté une galerie en tant que champ méta personnalisé appelé "galerie". Vous téléchargez de nombreuses images via media_sideload_image() . Ensuite, sérialisez leurs identifiants et insérez-les dans la galerie par update_post_meta( $post_id , 'gallery', $serialized) ;
Par conséquent, lorsque vous regardez la publication dans la page principale Modifier la publication , vous verrez toutes les photos téléchargées. Cependant, ces images ne s'afficheront pas dans un diaporama dans le frontend tant que vous n'aurez pas cliqué sur Mettre à jour dans le backend.
Alors, comment pouvez-vous cliquer par programme sur le bouton Mettre à jour après avoir créé la galerie ? Suivez simplement le guide ci-dessous :
- Une fois que vous avez mis à jour la galerie de publications, ajoutez ce code pour sélectionner par programmation le bouton Mettre à jour :
wp_update_post(['ID'=>$post_id]);
2. Mettez à jour le cache pour utiliser les fonctions de recherche et de filtrage :
do_action('search_filter_update_post_cache', $post_id);
Astuce bonus : protégez vos téléchargements de fichiers
Existe-t-il des moyens d'empêcher l'accès non autorisé à vos fichiers téléchargés ? La réponse est oui. Pour plus d'informations, veuillez vous référer à notre guide détaillé sur 21 astuces .htaccess utiles pour sécuriser les fichiers WordPress. Étant donné que .htaccess est un fichier critique qui assure le bon fonctionnement de votre site, soyez prudent lorsque vous apportez des modifications.
D'autre part, installez le plugin PDA Gold si vous n'êtes pas sûr de vos compétences en codage. Cela vous aidera à gérer les tracas sans vous soucier d'affecter le fichier .htaccess.
Une autre méthode intéressante consiste à protéger par mot de passe vos fichiers WordPress. Consultez notre article pour plus de détails.
Téléchargez des fichiers par programmation dans WordPress comme un expert !
Nous vous avons montré 3 façons de télécharger des fichiers par programmation dans WordPress. Désormais, vous pouvez facilement télécharger des fichiers dans la médiathèque ou via un formulaire de téléchargement de fichiers frontend HTML. Il est également possible d'ajouter des fichiers à votre galerie personnalisée. Et surtout, n'oubliez pas de protéger vos fichiers WordPress en utilisant du code ou en installant des plugins.
Il s'agit de savoir comment télécharger des fichiers par programmation dans WordPress. Connaissez-vous d'autres méthodes ? Veuillez partager avec nous dans la section des commentaires ci-dessous.