Le WordPress d'aujourd'hui, décodé pour les développeurs

Erreurs WordPress · Éditeur et constructeurs de pages

Elementor : la zone de contenu n’a pas été trouvée (the_content)

Elementor

Elementor : « la zone de contenu n’a pas été trouvée dans votre page » ? Comprenez the_content() et corrigez modèle, thème ou extensions pas à pas.

Message affiché

Désolé, la zone de contenu n’a pas été trouvée dans votre page.

En anglais : Sorry, the content area was not found in your page.

Réponse rapide

Le modèle qui affiche la page n’appelle pas the_content(), donc Elementor ne trouve pas son conteneur dans l’aperçu. Changez le modèle de page (Canevas ou Par défaut) ou ajoutez the_content() dans le fichier du thème.

Vous cliquez sur « Modifier avec Elementor » et, au lieu de l’éditeur, une boîte de dialogue s’ouvre : « Désolé, la zone de contenu n’a pas été trouvée dans votre page. ». Elle précise qu’il faut appeler la fonction the_content dans le modèle actuel pour qu’Elementor fonctionne. Le problème apparaît uniquement dans l’éditeur Elementor, pas sur le site public, et il concerne en général une page ou un type de contenu précis plutôt que tout le site.

Ce que signifie cette erreur

Elementor ne remplace pas le modèle de votre thème : il s’insère dans le contenu de la page. Pour afficher l’éditeur, il charge l’aperçu de la page dans un cadre (iframe) avec le paramètre elementor-preview. Dans ce mode, la classe Preview d’Elementor (includes/preview.php) accroche un filtre sur the_content avec la priorité 999999 : il remplace le contenu de l’article par un conteneur vide du type <div class="elementor elementor-123"></div>, dans lequel l’éditeur affiche ensuite vos éléments.

Une fois l’aperçu chargé, le script de l’éditeur (assets/js/editor.js) cherche ce conteneur dans le cadre, avec le sélecteur .elementor- suivi de l’identifiant du document. Si le conteneur n’existe pas, il ne peut rien monter : la méthode onPreviewElNotFound() ouvre alors la boîte de dialogue, avec le titre « Désolé, la zone de contenu n’a pas été trouvée dans votre page. » et le texte « Vous devez appeller la fonction » the_content « dans le modèle actuel pour qu’Elementor fonctionne sur cette page. » (traduction officielle, faute comprise). Le bouton de confirmation ouvre l’aide d’Elementor.

La cause est donc toujours la même : le modèle qui affiche la page n’appelle pas the_content(), ou quelque chose empêche le filtre d’agir. Une variante distincte existe côté PHP pour la page Boutique de WooCommerce (core/debug/classes/shop-page-edit.php) : « Désolé, la zone de contenu n’a pas été trouvée sur votre page. », accompagnée d’un conseil sur le Theme Builder.

Diagnostic rapide

Symptôme / constatCause probableÀ vérifier
Seule une page précise pose problème, et elle utilise un modèle personnaliséLe fichier de modèle du thème n’appelle pas the_content()Modèle de page choisi, fichier correspondant dans le thème
Le message apparaît sur la « Page des articles » ou la page d’accueilPage affectée à l’affichage des articles, qui utilise un modèle d’archiveRéglages, Lecture ; option page_for_posts
Le problème concerne un type de contenu personnalisé ou un modèle du Theme BuilderModèle sans le widget « Contenu de la publication »Modèle Elementor Pro de type Article, widgets présents
Le message est apparu après l’installation ou la mise à jour d’une extensionUne extension retire ou remplace les filtres de the_contentMode sans échec d’Elementor, désactivation des extensions
La page Boutique de WooCommerce ne s’édite pasPage d’archive produits, non éditable comme une page ordinaireTheme Builder, modèle d’archive de produits

Les causes les plus fréquentes

  1. Un modèle de page du thème (page-*.php, single-*.php) qui affiche le contenu autrement : get_the_content(), the_excerpt() ou une boucle personnalisée, sans passer par the_content().
  2. Un modèle du Theme Builder (Elementor Pro) pour les articles ou les pages qui ne contient pas le widget « Contenu de la publication ».
  3. Une page définie comme « Page des articles » dans Réglages, Lecture, ou utilisée comme archive.
  4. Une extension ou un code de thème qui appelle remove_all_filters( 'the_content' ) ou remove_filter() et empêche le filtre d’Elementor de s’exécuter.
  5. Un thème enfant dont le modèle surcharge celui du parent sans conserver l’appel à the_content().
  6. Un conflit de serveur qui empêche l’aperçu de se charger correctement (voir « Switch Editor Loader Method »).

Solutions pas à pas

1. Changer le modèle de page

À essayer en premier, car c’est la plus rapide. Dans l’éditeur de blocs ou la fiche de la page, repérez le champ « Modèle » (page ordinaire) et choisissez « Par défaut » ; dans Elementor, ouvrez les paramètres de la page et utilisez « Modèle de page » : les options « Canevas Elementor » et « Elementor pleine largeur » contournent le modèle du thème. Sans accès à l’éditeur, WP-CLI permet de lire et de remettre le modèle par défaut :

wp post meta get 123 _wp_page_template
wp post meta update 123 _wp_page_template default

Remplacez 123 par l’identifiant de la page. Vérification : rouvrez l’éditeur Elementor.

2. Vérifier la page des articles

Ouvrez Réglages, Lecture. Si la page que vous éditez est choisie comme « Page des articles », WordPress y affiche la liste des articles et non son contenu. Choisissez une autre page, ou concevez cette liste avec le Theme Builder. En WP-CLI :

wp option get show_on_front
wp option get page_for_posts
wp option get page_on_front

3. Corriger le modèle du thème

Sauvegardez vos fichiers, puis ouvrez par SFTP le modèle utilisé par la page (dans le thème enfant de préférence). La boucle doit appeler the_content(), comme ceci :

<?php
while ( have_posts() ) :
    the_post();
    the_content();
endwhile;

Si le modèle appelle get_the_content() ou the_excerpt(), remplacez-le par the_content(). Vérifiez aussi que le modèle est bien celui qu’affiche la page, car le thème enfant peut l’avoir remplacé. Notre article sur l’ajout d’un encart sur the_content explique comment agir sur le contenu sans effet de bord.

4. Corriger le modèle du Theme Builder (Elementor Pro)

Ouvrez le modèle concerné dans le Constructeur de thème d’Elementor. Pour un modèle de type article, ajoutez le widget « Contenu de la publication » à l’endroit où le contenu doit apparaître, puis publiez. Vérifiez aussi les conditions d’affichage : un modèle trop large peut s’appliquer à une page qui n’en veut pas. Nos articles sur les conditions d’affichage et leur ordre de priorité et sur le Theme Builder sans PHP détaillent la démarche.

5. Isoler une extension ou le thème

Dans Elementor, Outils, onglet « Général », activez le « Mode sans échec » : l’éditeur se charge sans le thème ni les autres extensions. Si le message disparaît, le coupable est l’un des éléments mis de côté. Désactivez alors les extensions une à une, ou avec WP-CLI :

wp plugin list --status=active
wp plugin deactivate nom-de-l-extension

Cherchez aussi dans votre code les suppressions de filtres :

grep -rn "remove_all_filters\|remove_filter( 'the_content'" wp-content/themes wp-content/plugins

La démarche est détaillée dans notre article sur l’isolation d’un conflit entre extensions.

6. Tester l’autre méthode de chargement

Si rien ne fonctionne, ouvrez Elementor, Réglages, onglet « Avancé », et passez le champ « Permuter de méthode de chargeur d’éditeur » sur « Activer ». Cette option sert, selon la description d’Elementor, au dépannage des conflits de configuration du serveur. Enregistrez, puis rouvrez l’éditeur.

Prévenir l’erreur

  • Dans un thème sur mesure, utilisez toujours the_content() dans les modèles de pages et d’articles.
  • Conservez cet appel quand vous surchargez un modèle dans un thème enfant.
  • Testez l’éditeur Elementor sur une page de chaque modèle après une mise à jour du thème.
  • Documentez les modèles du Theme Builder et leurs conditions, et vérifiez qu’ils contiennent le widget de contenu.
  • N’utilisez pas remove_all_filters( 'the_content' ) : ciblez le filtre précis à retirer.

FAQ

Pourquoi l’erreur n’apparaît-elle que dans l’éditeur Elementor ?

Sur le site public, la page peut s’afficher sans appeler the_content() si le modèle affiche le contenu autrement. Elementor, lui, a besoin du conteneur produit par ce filtre pour monter l’éditeur.

Est-ce lié à ma version d’Elementor ?

Rarement. Le message est généré par l’éditeur (version 4.3.2 ici) quand le conteneur est absent de l’aperçu : il dépend surtout du thème, du modèle utilisé et des extensions. Une mise à jour de l’éditeur ne le corrige donc généralement pas.

Le Mode sans échec modifie-t-il mon site ?

Non, il ne modifie pas vos réglages : il charge seulement l’éditeur sans le thème ni les autres extensions, pour le dépannage. Désactivez-le ensuite depuis le même écran.

Comment éditer ma page Boutique WooCommerce ?

Cette page est une archive de produits. Créez un modèle d’archive de produits avec le Theme Builder d’Elementor Pro, comme le suggère le message dédié d’Elementor.