Une vidéo chargée par FTP mais absente de l’interface
Le besoin initial était simple : rendre accessible dans WordPress une vidéo déjà transférée en FTP. Le fichier, bien présent dans le dossier wp-content/uploads, n’apparaissait pourtant pas dans la médiathèque. Aucune erreur, aucun message. Juste un vide.
Premier réflexe : rechercher une méthode classique pour forcer l’import. Le plugin « Add From Server » est historiquement conçu pour cela. Mais une vérification rapide montre qu’il n’est plus maintenu depuis plusieurs années. L’option est donc écartée pour éviter d’introduire une faille ou un conflit dans le site.
Explorer une alternative manuelle sans plugin
Vient alors la question clé : peut-on « déclarer » manuellement un fichier média déjà présent sur le serveur ? La réponse est oui, mais cela implique d’interagir avec WordPress au niveau de sa base de données et de sa structure d’attachement.
WordPress ne détecte pas automatiquement les fichiers présents dans les dossiers. Il ne considère comme « médiathèque » que ce qui est inscrit dans la base avec le type attachment. Il faut donc créer cette entrée manuellement, en associant le fichier local au bon format de métadonnées.
Script pour enregistrer la vidéo dans la base
Un code PHP a été rédigé pour automatiser cette opération :
function lia_register_video_attachment() {
$file = 'wp-content/uploads/2025/06/mavideo.mp4';
$filepath = ABSPATH . $file;
if (!file_exists($filepath)) {
echo 'Fichier introuvable';
return;
}
$filetype = wp_check_filetype(basename($file), null);
$attachment = array(
'guid' => site_url($file),
'post_mime_type' => $filetype['type'],
'post_title' => sanitize_file_name(basename($file)),
'post_content' => '',
'post_status' => 'inherit',
'post_type' => 'attachment',
);
$attach_id = wp_insert_attachment($attachment, $filepath);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata($attach_id, $filepath);
wp_update_attachment_metadata($attach_id, $attach_data);
echo 'Fichier enregistré en tant qu’attachment ID : ' . $attach_id;
}
add_action('init', 'lia_register_video_attachment');
Ce code doit être inséré temporairement dans le functions.php du thème actif. Il s’exécute à l’appel du site, en une seule fois, puis doit être retiré immédiatement après pour éviter les doublons.
Une fois exécuté, la vidéo devient disponible dans la médiathèque comme n’importe quel autre média. Elle peut alors être insérée via l’éditeur ou utilisée comme source dans un bloc vidéo.
Autre possibilité : insérer le fichier directement dans le contenu
Pour les cas où l’on ne souhaite pas l’enregistrer dans la médiathèque, l’insertion directe dans une page reste envisageable. Exemple d’intégration HTML :
<video controls width="640">
<source src="https://exemple.fr/wp-content/uploads/2025/06/mavideo.mp4" type="video/mp4">
Votre navigateur ne supporte pas la lecture vidéo.
</video>
Ce mode d’intégration fonctionne sans lien avec la médiathèque, mais sans les avantages de gestion WordPress (édition, compression, changement de nom ou de format).
Quand la médiathèque devient indispensable
L’intégration via attachment devient cruciale si l’on veut :
- utiliser des plugins de galerie ou de media player évolués ;
- gérer les fichiers dans l’interface admin ;
- activer des restrictions d’accès ou de droits ;
- exploiter le CDN ou les optimisations natives de WordPress.
Dans ces cas, le script vu plus haut est la solution la plus propre et la plus pérenne.
Pour toute assistance dans la mise en œuvre de ce script ou l’automatisation d’imports médias massifs, vous pouvez nous contacter. Nous intervenons aussi bien sur les WordPress standards que sur les architectures personnalisées.




0 commentaires