
📄 Comment intégrer un fichier HTML dans une page WordPress : l'extension Include Me
Nous avons construit un formulaire de contact dans un fichier .html séparé, écrit un script de rapport en PHP, et l'éditeur WordPress corrompt le code à chaque sauvegarde? Une douleur familière pour quiconque dépasse le constructeur de blocs standard.
Include Me résout cette tâche avec une seule ligne de shortcode: il inclut un fichier HTML/PHP externe ou le contenu d'un autre article directement dans le corps de l'article. L'extension est disponible dans le répertoire WordPress.org avec plus de 4 000 installations actives, une note de 4,8 et des mises à jour pour WP 6.9.4. L'auteur, Stefano Lissa, est le créateur de Newsletter et Hyper Cache.
Voici une présentation complète: de l'installation au passage de variables vers des scripts PHP en passant par le mode iframe sécurisé.
💡 Aperçu rapide:
- Installez Include Me depuis le répertoire WordPress.org (Extensions → Ajouter, recherchez «Include Me»).
- Téléversez votre fichier HTML/PHP cible dans le dossier
/wp-content/include-me/sur le serveur. - Insérez le shortcode
[includeme file="your-file.html"]là où vous en avez besoin dans un article ou une page. - Pour les fichiers PHP: l'extension exécute le script et affiche le résultat. Pour le HTML, elle l'insère tel quel.
- Vous pouvez également inclure un autre article WordPress via
post_idou une URL externe via la syntaxe iframe.
Qu'est-ce que Include Me et quand en avez-vous besoin
Include Me est une extension légère (quelques lignes de code seulement, selon l'auteur) qui résout une tâche spécifique: insérer un fichier externe dans le corps d'un article ou d'une page WordPress via un shortcode.
Quand vous en avez besoin en pratique:
- Formulaires et calculateurs. Vous avez écrit un formulaire HTML avec CSS et JS, et l'éditeur de blocs corrompt le balisage à chaque basculement entre le mode visuel et le mode texte. Include Me insère le fichier octet par octet, sans rien toucher.
- Rapports PHP. Un script extrait des données de la base, construit un tableau et génère du HTML. Include Me exécute le PHP et affiche le résultat dans l'article sans modifier le thème.
- Blocs partagés. Le même fichier (tableau de prix, mentions légales, bloc de contact) doit apparaître sur une douzaine de pages. Modifiez le fichier une fois, et il se met à jour partout automatiquement.
- Contenu d'un autre article. Vous avez inclus le texte d'une autre page via
post_id, et il reste synchronisé: modifiez à un seul endroit, affichez partout.
Le principal avantage par rapport à un template de thème personnalisé: lorsque vous changez de thème, vos fichiers restent en place. Le thème change, le contenu vit de manière indépendante.
Installation et première exécution
L'installation est standard, via le panneau d'administration WordPress:
- Extensions → Ajouter.
- Dans le champ de recherche, tapez «Include Me».
- Trouvez l'extension de Stefano Lissa, cliquez sur Installer → Activer.
Après activation, l'extension est prête à l'emploi, sans écran de paramétrage. Toute la «configuration» se fait via la syntaxe du shortcode.
Chemin de fichier par défaut: /wp-content/include-me/. Téléversez les fichiers que vous prévoyez d'inclure dans ce dossier. Si vous avez besoin d'un répertoire différent, ajoutez dans wp-config.php:
1 define('INCLUDE_ME_DIR', '/path/to/your/folder');
Si vous souhaitez inclure des fichiers depuis n'importe où sur le serveur, définissez un astérisque (mais il est plus sûr de restreindre à un seul dossier):
1 define('INCLUDE_ME_DIR', '*');
Limitation de sécurité importante: à partir de la version 1.3.0, le shortcode [includeme] ne s'exécute que dans les articles dont l'auteur est un administrateur. Les fichiers sont recherchés par défaut dans le dossier racine du site (ABSPATH et sous-dossiers). Ce n'est pas un bug mais une protection: Include Me exécute du code PHP, et vous ne devriez pas donner cette capacité à n'importe qui.
Syntaxe de base: inclusion de fichiers HTML et PHP

Le shortcode principal est [includeme file="filename"]. Il fonctionne dans tout article, page ou widget (via do_shortcode).
Exemple 1: fichier HTML. Vous avez préparé price-table.html avec une mise en page de tarifs et des styles. Vous l'avez téléversé dans /wp-content/include-me/. Dans l'article, vous écrivez:
1 [includeme file="price-table.html"]
L'extension lit le fichier et insère son contenu exactement là où le shortcode est placé. Une balise <style> à l'intérieur du fichier fonctionne. Le JS en ligne fonctionne. Aucune «sanitization» du balisage.
Exemple 2: script PHP. Le fichier report.php exécute un SELECT depuis la base de données et génère un tableau. L'extension .php est le déclencheur pour Include Me: l'extension ne se contente pas de lire le fichier, elle l'exécute via include. La sortie du script (echo/print) est intégrée dans l'article:
1 [includeme file="report.php"]
Exemple 3: chemin relatif. Un chemin sans slash initial (file="myfolder/data.html") est relatif à la racine du site (ABSPATH). Un chemin absolu (file="/var/www/external/widget.html") part de la racine du système de fichiers du serveur. Dans la plupart des cas, vous utilisez un chemin relatif vers un fichier situé dans /wp-content/include-me/.
Inclusion d'un autre article ou page via post_id
Les développeurs d'Include Me ont ajouté une syntaxe pour extraire le contenu d'un article WordPress existant. Le shortcode:
1 [includeme post_id="42"]
Où 42 est l'ID numérique de l'article ou de la page souhaité. Comment trouver l'ID: dans le panneau d'administration, survolez le lien «Modifier» de l'article souhaité, et vous verrez post=42 dans la barre d'état du navigateur.
Cette technique est pratique pour les pages légales. Les politiques de confidentialité ou les conditions d'utilisation sont souvent dupliquées: une instance dans la page «parente», les autres utilisent Include Me avec post_id. Le juriste modifie le texte à un seul endroit, et il se met à jour partout.
Remarque: seul le contenu de l'article est extrait, pas le titre. Si vous avez également besoin du titre, vous devrez le dupliquer dans le contenu ou utiliser [includeme file="..."] avec un script PHP qui appelle get_post().
Mode iframe: intégration d'une URL externe
La troisième syntaxe génère une <iframe> au lieu d'une inclusion directe:
1 [includeme src="https://example.com/widget"]
Tout attribut supplémentaire est transmis à l'<iframe> en tant qu'attribut HTML:
1 [includeme src="https://example.com/widget" frameborder="0" width="600" height="450"]
Le résultat est une iframe complète avec les dimensions spécifiées. C'est une alternative à l'inclusion directe pour les cas où:
- Vous devez afficher une page externe comme une «fenêtre» à l'intérieur de l'article.
- Le contenu inclus doit vivre dans un contexte isolé (son propre CSS/JS qui n'entre pas en conflit avec le thème).
- Vous devez intégrer un widget interactif (calculateur, carte) qui ne doit pas s'exécuter dans le contexte WordPress.
Limitation: le mode iframe n'exécute pas le PHP; il affiche simplement l'URL dans un cadre. Pour le code côté serveur, utilisez file="...".
Passage de variables aux scripts PHP
La fonctionnalité la plus puissante d'Include Me est le passage de paramètres du shortcode vers le fichier PHP inclus. Dans le shortcode, vous écrivez:
1 [includeme file="greeting.php" name="Alexey" plan="Pro"]
À l'intérieur de greeting.php, vous accédez aux attributs via le tableau global $attrs:
1 <?php 2 $user_name = $attrs['name'] ?? 'Guest'; 3 $user_plan = $attrs['plan'] ?? 'Free'; 4 5 echo "<p>Hello, {$user_name}! Your plan: {$user_plan}.</p>";
Cela transforme Include Me en un mini moteur de templating. Le même fichier PHP génère une sortie différente selon les attributs du shortcode. Scénarios pratiques:
- Calculateur de prix. Un seul script
calc.phpreçoitbase_priceetdiscountdu shortcode, affichant des calculs différents sur différentes pages. - Bloc personnalisé.
cta.phpaccepteheadingetbutton_text, chaque article a son propre titre et bouton, mais le squelette HTML est partagé. - Tableau de bord client.
client-stats.phpreçoitclient_idet affiche les données d'un client spécifique depuis un CRM externe.
Ce que Include Me ne fait pas: limitations
L'extension résout une tâche précise et n'essaie pas d'être un couteau suisse. Inconvénients à connaître avant l'installation:
- Administrateurs uniquement. Le shortcode ne fonctionne que dans les articles dont l'auteur est un administrateur. Les auteurs et éditeurs ne peuvent pas utiliser Include Me; c'est une restriction de sécurité intentionnelle (version 1.2.2+).
- Pas d'éditeur visuel. Aucune interface dans le panneau d'administration: l'extension n'ajoute pas de métabox pour la sélection de fichiers. Tout se fait manuellement via le shortcode.
- L'extension
.phpest requise pour l'exécution. Un fichier nomméscript.inccontenant du code PHP ne sera PAS exécuté; l'extension l'insérera comme du texte. Renommez-le enscript.php. - Pas de cache. Chaque appel de shortcode lit le fichier depuis le disque ou exécute le PHP à nouveau. Pour les pages à fort trafic avec des scripts lourds, mettez en cache la sortie vous-même (via l'API Transients ou une extension de cache au niveau de la page).
⁉️🤔 Foire aux questions
Include Me fonctionne-t-il avec les versions modernes de WordPress?
Oui, l'extension est testée jusqu'à WordPress 6.9.4 et nécessite la version 6.1 ou supérieure. La dernière mise à jour (1.3.7) a été publiée en février 2026, et l'auteur maintient la compatibilité avec chaque version majeure de WP.
Est-il sûr d'inclure des fichiers PHP via un shortcode?
Depuis la version 1.2.2, l'extension exécute les fichiers PHP uniquement depuis un dossier situé dans la racine du site et uniquement pour les articles dont l'auteur est un administrateur. Cela empêche l'exécution de code arbitraire via XSS ou substitution d'URL. De plus, restreignez le dossier via
define('INCLUDE_ME_DIR', '...')et évitez d'utiliser'*'sauf en cas de nécessité absolue.
En quoi Include Me diffère-t-il de l'extension Insert Pages?
Insert Pages se concentre sur l'insertion de contenu provenant d'autres articles; elle dispose d'un riche ensemble d'options de formatage et d'encapsulation. Include Me est plus simple et conçu pour travailler avec des fichiers: HTML, PHP, TXT. Si votre tâche consiste uniquement à extraire un autre article, Insert Pages est plus pratique. Si vous avez besoin de scripts PHP et de fichiers externes, Include Me est le choix approprié.
Puis-je insérer le même fichier sur dix pages?
Oui, c'est exactement pour cela que l'extension est conçue. Un fichier dans
/wp-content/include-me/est inclus via le même shortcode sur n'importe quel nombre de pages. Modifiez le fichier, et le contenu se met à jour partout instantanément, sans avoir à réenregistrer chaque article.
Pourquoi mon fichier PHP n'affiche-t-il rien?
Trois raisons courantes: (1) le fichier n'est pas dans le dossier
INCLUDE_ME_DIRet le chemin est incorrect; (2) une erreur fatale existe dans le code PHP (vérifiezWP_DEBUGet les logs du serveur); (3) le fichier a été enregistré avec une extension.htmlou.incau lieu de.php(Include Me n'exécute que les.php).
Que se passe-t-il si l'extension cesse de recevoir des mises à jour?
Include Me se compose de quelques lignes de code seulement (selon l'auteur) et ne dépend pas de services externes. Même sans mises à jour, elle continuera de fonctionner pendant des années; sa logique n'est pas liée à l'API REST de WP, aux blocs ou aux fonctionnalités spécifiques à Gutenberg. Le mécanisme de base des shortcodes WordPress n'a pas changé depuis la version 2.5.
Que faire si vous avez besoin de plus: alternatives et prochaines étapes
Si Include Me ne couvre pas vos besoins, voici deux pistes d'extension:
- Insertion d'articles avec mise en forme: l'extension Insert Pages extrait le contenu d'autres articles avec des paramètres d'affichage flexibles (titre, extrait, conteneur personnalisé).
- Moteur PHP complet: l'extension WPCode (anciennement Insert Headers and Footers) vous permet d'insérer des extraits PHP globalement ou conditionnellement, avec coloration syntaxique et contrôle d'erreur.
Commencez par Include Me: pour la tâche typique «insérer un fichier externe dans un article», c'est plus que suffisant. Et si vous avez déjà utilisé cette extension ou résolu une tâche similaire différemment, partagez dans les commentaires l'outil que vous avez choisi.



