Le bouton « Modifier avec Page Builder Sandwich » n’apparaît pas

Le bouton « Modifier avec Page Builder Sandwich » n’apparaît pas

Si vous ne voyez pas le bouton « Modifier avec Page Builder Sandwich » sur le front-end de votre site, voici quelques pistes à explorer :

Assurez-vous que votre barre d’administration est visible

Le bouton de modification pour PB Sandwich est disponible dans la barre d’administration sur votre front-end. Assurez-vous que la barre d’administration est visible en vous rendant dans votre administration et en allant dans Utilisateurs > Votre profil puis vérifiez que la case Afficher la barre d’outils lors de la visualisation du site est cochée.

e5960e581e file w9uN2EeCjm

Assurez-vous d’être sur une page, un article ou un type de publication personnalisé (Custom Post Type)

Seuls les articles, les pages et les types de publication personnalisés sont modifiables sur le front-end. Vous ne pouvez modifier des éléments sur le front-end que si vous pouvez les modifier à l’aide de l’éditeur de contenu de WordPress dans le back-end. Les autres zones de votre site – par exemple, la liste des articles de blog sur la page d’accueil, la liste de tous les articles de blog, les listes de catégories, les pages 404, les pages de recherche – sont des pages dynamiques créées par WordPress en lien avec le thème que vous utilisez et ne peuvent pas être modifiées à l’aide de PB Sandwich.

Un bon indicateur pour savoir si la page web actuelle est modifiable est la présence de « Modifier l’article » ou « Modifier la page » dans votre barre d’administration.

Assurez-vous que votre contenu n’est pas généré dynamiquement par votre thème ou une extension

Si votre page/article est généré(e) dynamiquement par un thème ou une extension, il ou elle ne sera pas modifiable avec Page Builder Sandwich (et très probablement pas non plus avec d’autres constructeurs de pages). Si vous remarquez que votre éditeur de contenu dans le back-end est vide, mais que l’affichage de votre page sur le front-end est rempli de contenu, c’est un bon indicateur que votre page est générée dynamiquement.

Pour vérifier si votre page est générée dynamiquement, affichez le code source de votre page web (clic droit, puis choisissez « Afficher le code source de la page »). Recherchez le texte « pbs-main-wrapper » ; si vous ne trouvez ce texte nulle part, c’est que votre page est générée dynamiquement.

Voici quelques exemples de contenu généré dynamiquement :

  • Votre page est composée de plusieurs widgets que vous ajoutez/modifiez à l’aide de l’outil de personnalisation,
  • Votre page est composée de différentes pages assemblées par un thème « one page » (dans ce cas, vous pouvez toujours modifier les pages individuelles, mais pas la page combinée), ou
  • Votre page est composée des derniers articles de blog.

Essayez d’abord d’ajouter du contenu

Dans certains cas, le thème n’affichait pas du tout le contenu s’il était vide, ce qui amenait PBS à penser à tort que la page n’était pas modifiable. Pour vérifier si c’est le cas, modifiez votre page/article dans l’éditeur du back-end, essayez d’ajouter n’importe quel texte dans votre contenu (par exemple « bonjour »), puis cliquez sur le bouton « Modifier avec Page Builder Sandwich » depuis cet écran.

Merci à Mathias Hellquist pour cette astuce !

Assurez-vous que votre page n’est pas « réservée » par un autre constructeur de page

Certains constructeurs de pages vous obligent à choisir entre l’éditeur de contenu par défaut de WordPress et leur propre éditeur. Si vous avez déjà modifié votre page avec un autre constructeur de page, il est possible que celui-ci se soit déjà « approprié » le contenu, empêchant les autres hooks/filtres de contenu de s’exécuter. De ce fait, Page Builder Sandwich peut parfois ne pas réussir à détecter où se trouve votre contenu et n’affichera pas le bouton de modification car il n’y a rien à modifier.

Pour corriger cela, choisissez simplement de ne pas utiliser ce constructeur de page pour cette page/cet article spécifique, et optez plutôt pour l’éditeur de contenu par défaut de WordPress.

Assurez-vous de disposer des droits de modification sur la page

Le bouton de modification n’apparaîtra pas si vous n’avez pas la permission de modifier la page. Par exemple, si vous êtes éditeur ou contributeur et que vous pouvez rédiger des articles de blog sur le site, cela ne signifie pas nécessairement que vous pouvez modifier la page d’accueil ou votre page de contact. Si vous voyez le bouton « Modifier l’article » dans votre barre d’administration, vous devriez également être en mesure de la modifier avec PB Sandwich. Demandez les privilèges de modification à l’administrateur de votre site si vous en avez besoin.

Il se peut qu’une erreur JavaScript empêche PB Sandwich de fonctionner

PB Sandwich utilise JavaScript de manière intensive. Si des erreurs JavaScript proviennent d’autres scripts présents sur votre site, cela peut empêcher PB Sandwich de fonctionner. Pour vérifier si c’est le cas, vous pouvez ouvrir la console de développement de votre navigateur pour rechercher les erreurs.

Je vous recommande d’utiliser Chrome pour cette étape. Faites un clic droit sur n’importe quel élément de la page, puis cliquez sur l’option « Inspecter ». Cela fera apparaître une nouvelle zone en bas de votre navigateur, cliquez sur l’onglet « Console ». Si vous avez des erreurs, vous devriez voir quelque chose de similaire :

4acce143a3 file

Si vous avez effectivement une erreur, vous pouvez également obtenir un indice sur son origine en cliquant ou en survolant le nom du script avec votre souris :

abb5a87c67 file ITjVcdhZQU

Ces erreurs peuvent provenir de votre thème ou d’autres extensions installées. La résolution de ces erreurs permettra à PB Sandwich de fonctionner à nouveau.

Si votre thème ou l’une de vos extensions est à l’origine de l’erreur JavaScript, veuillez nous en informer par e-mail à [email protected] et nous ferons de notre mieux pour résoudre le problème 🙂

Si vous utilisez Cloudflare, assurez-vous que Rocket Loader est désactivé

Cloudflare est un réseau de diffusion de contenu (CDN) et DNS gratuit très utilisé. C’est un excellent service, mais PBS rencontre actuellement des problèmes avec la fonctionnalité Rocket Loader. Rocket Loader améliore le temps de chargement des fichiers JavaScript, mais il perturbe l’ordre des dépendances et des appels des scripts de PBS. Si Rocket Loader est activé, le bouton de modification de Page Builder Sandwich n’apparaîtra pas (et aucune erreur JavaScript ne s’affichera dans la console).

Pour vérifier si votre site utilise le Rocket Loader de Cloudflare, affichez le code source de votre page web (clic droit, puis choisissez « Afficher le code source de la page »), puis recherchez le texte « rocketscript » ; si vous trouvez ce texte, cela signifie que Rocket Loader est activé.

e4dff5b8c0 file tPnWvP09FF

Consultez l’article sur la compatibilité avec Cloudflare et Rocket Loader pour obtenir les instructions complètes sur la façon de le désactiver.


J’ai essayé tout cela et le bouton de modification n’apparaît toujours pas !

Très bien, à ce stade, si aucune des solutions ci-dessus ne fonctionne, il est peut-être temps d’expliquer pourquoi il n’apparaît pas et ce qu’il faut faire pour y remédier. Prêt ? C’est parti !

Le « pourquoi » (en termes non techniques)

Page Builder Sandwich a besoin de savoir où se trouve le contenu de votre page/article. Pour ce faire, nous détectons le moment où WordPress charge le contenu de la publication et « marquons » cette zone, afin de pouvoir retrouver où se trouvent les éléments importants une fois que tout est chargé.

Parfois, certaines extensions contournent ou remplacent ce processus et essaient de charger le contenu à leur manière. Cela ne pose parfois aucun problème, mais dans certains cas, particulièrement lorsqu’il s’agit de charger le contenu de la publication principale, cela peut empêcher certaines extensions de fonctionner. Lorsqu’une autre extension contourne ce processus de chargement, les « repères » que nous avons placés peuvent être perdus et, lorsque vient le moment pour l’éditeur d’intervenir, il ne parvient plus à localiser votre contenu. Par conséquent, le bouton de modification n’apparaît pas ! Vous constaterez peut-être également que certaines extensions qui ajoutent du contenu à votre page, comme certaines extensions de partage sur les réseaux sociaux, cessent également de fonctionner pour cette même raison.

Le « pourquoi » (en termes techniques)

Page Builder Sandwich a besoin de savoir où se trouve le contenu de votre page/article, et il le fait en s’accrochant au filtre the_content et en ajoutant un conteneur (wrapper) autour de votre contenu principal. Certaines extensions peuvent outrepasser cela et écraser le contenu avec une fonction get_the_content() plus loin dans l’exécution. Malheureusement, cette pratique empêche TOUS les filtres the_content d’être appelés, et le conteneur de PBS est donc perdu. Les modifications apportées par d’autres extensions seraient également perdues.

Il n’y a rien de mal en soi à utiliser get_the_content(), mais cela peut avoir des effets néfastes si cette fonction est utilisée dans la requête principale et dans la page de modèle de publication individuelle (single post) au lieu de l’appel normal à the_content() où tous les filtres the_content sont exécutés.

Ce que vous pouvez faire

Vous pouvez vérifier si les « repères » de Page Builder Sandwich sont absents en visitant votre page/article sur le front-end et en affichant le code source de la page tout en étant connecté. Cherchez dans le code si vous trouvez la chaîne :

data-name="main-content"

Si vous la trouvez, il s’agit probablement d’un problème JavaScript quelque part ; indiquez-nous simplement le thème et les extensions que vous utilisez et nous pourrons régler cela.

Mais si vous ne la trouvez pas, il se peut que votre thème (ou une extension, mais il s’agit très probablement du thème s’il s’agit d’une page ou d’un article de blog) effectue des opérations sur le contenu de la publication. Si tel est le cas, vous devriez contacter l’auteur du thème et lui signaler le problème ! Vous pouvez également lui montrer l’explication technique du « pourquoi » ci-dessus, cela peut aider au débogage 🙂

Si vous êtes à l’aise pour bricoler en PHP, vous pouvez essayer de corriger le problème en trouvant le fichier de modèle qui gère le contenu de la publication. Une solution que nous avons rencontrée consiste à remplacer les appels de :

$content = get_the_content();

par :

ob_start();
the_content();
$content = ob_get_clean();<br>

Remarque : la variable PHP peut être différente chez vous, mais le principe reste le même. Si cela fonctionne, il serait également préférable de créer un thème enfant plutôt que d’appliquer cette modification directement dans votre thème. Cette modification pouvant également entraîner des effets secondaires, il est préférable de consulter l’auteur de votre thème à ce sujet.