Documentation · Dépannage

Problèmes de shortcodes

Ce document couvre les problèmes qui peuvent survenir lors de l'utilisation des shortcodes de l'extension pour intégrer des listes de véhicules sur des pages ou des articles WordPress.

Quand utiliser ce document

Lisez ce document lorsque :

  • Un shortcode s'affiche sous forme de texte brut (la balise du shortcode est visible sur la page au lieu du rendu attendu).
  • Un shortcode ne produit rien ou un espace vide.
  • La grille de véhicules s'affiche mais le filtrage, le tri ou la pagination ne fonctionnent pas correctement.
  • Le shortcode du filtre de recherche soumet vers la mauvaise page ou ne redirige pas vers les résultats.
  • Le CSS ou le JavaScript requis par le shortcode ne se charge pas sur la page.
  • Un shortcode fonctionne dans un contexte (par exemple, une page standard) mais pas dans un autre (par exemple, un widget ou un modèle personnalisé).

Aperçu

L'extension enregistre six shortcodes. Les trois ci-dessous sont les shortcodes d'affichage/intégration couverts en détail par ce document :

ShortcodeObjectif
[as24ci_archive]Génère la grille complète de liste de véhicules avec filtres, tri et pagination.
[as24ci_compare]Génère la vue de comparaison de véhicules.
[as24ci_search_filter]Génère uniquement le formulaire de filtre de recherche, sans les résultats. Conçu pour être utilisé sur une page d'accueil ou une page de destination afin de diriger les visiteurs vers une page de résultats.

L'extension enregistre également [as24ci_favorites] (la page des véhicules enregistrés / liste de souhaits), [as24ci_location_box] et [as24ci_hours_box] (cartes d'emplacement et d'heures d'ouverture). Les conseils de placement et de résolution du problème "le shortcode s'affiche en texte brut" de ce document s'appliquent à tous.

Les shortcodes doivent être placés dans le champ du contenu de l'article d'une page ou d'un article WordPress. Ils sont traités par l'API standard des shortcodes de WordPress. Ils ne sont pas pris en charge dans les widgets, les fichiers de modèles, le code PHP ou les contextes où do_shortcode() n'est pas appelé.

Shortcodes disponibles et leurs attributs

[as24ci_archive]

Génère l'archive de véhicules avec un pré-filtrage facultatif.

Attributs pris en charge (tous facultatifs) :

AttributValeursDescription
makeChaîne de slugPré-filtrer par marque de véhicule.
modelChaîne de slugPré-filtrer par modèle de véhicule.
price_minEntierFiltre de prix minimum.
price_maxEntierFiltre de prix maximum.
fuelChaîne de slugPré-filtrer par type de carburant.
bodyChaîne de slugPré-filtrer par type de carrosserie.
order_byprice, mileage, dateChamp de tri. Par défaut : date.
orderasc, descDirection du tri. Par défaut : asc.
per_page12, 24, 48, 72, allRésultats par page. Par défaut : 24.

Les paramètres GET dans l'URL remplacent les attributs du shortcode. Cela signifie que le filtrage interactif (le formulaire de filtre se soumettant à la même page) fonctionne correctement même lorsque les attributs du shortcode fournissent des valeurs par défaut.

Exemple :

[as24ci_archive make="volkswagen" order_by="price" order="asc" per_page="24"]

[as24ci_compare]

Génère la vue de comparaison de véhicules. Aucun attribut n'est défini dans le code de l'extension. L'ensemble des véhicules à comparer est géré par la session du navigateur du visiteur (cookies ou stockage local — vérifiez ce comportement dans la version actuelle de l'extension avant de publier).

Exemple :

[as24ci_compare]

[as24ci_search_filter]

Génère un formulaire de filtre de recherche autonome sans afficher les résultats. Le formulaire redirige vers une page de résultats lors de la soumission.

Attributs pris en charge :

AttributValeursDescription
results_urlURLLa page où les résultats sont affichés. Par défaut, l'URL de l'archive du CPT (/cars/).

Exemple :

[as24ci_search_filter results_url="/inventory/"]

Si results_url est omis, l'extension tente de résoudre automatiquement l'URL de l'archive du CPT. Si l'URL de l'archive du CPT ne peut pas être déterminée (par exemple lors de l'utilisation de permaliens simples), elle se rabat sur /cars/.

Prérequis

  • La page contenant le shortcode doit être publiée et accessible.
  • Pour [as24ci_archive] : au moins un article de véhicule publié doit exister.
  • Les permaliens ne doivent pas être définis sur "Simple" pour que la pagination et le routage propre des URL fonctionnent correctement.

Étapes de diagnostic

Étape 1 : Confirmer que le shortcode est dans le contenu de l'article

Les shortcodes ne sont traités que lorsqu'ils sont placés dans la zone standard du contenu de l'article (le champ post_content). Ils ne sont pas traités dans :

  • Les zones de widgets (widgets de texte, widgets HTML personnalisés)
  • Les champs personnalisés, à moins que do_shortcode() ne soit explicitement appelé sur ces champs
  • Les fichiers PHP de modèle de thème, à moins que do_shortcode() ne soit appelé
  • Les éléments de constructeurs de pages qui traitent le contenu indépendamment du filtre the_content

Si le shortcode apparaît sous forme de texte brut ([as24ci_archive] visible sur la page), confirmez qu'il se trouve dans le corps de l'article et non à l'intérieur d'un champ personnalisé ou d'un bloc de code qui échappe le HTML.

Étape 2 : Confirmer que la balise du shortcode est correctement orthographiée

Les noms des shortcodes sont sensibles à la casse. Les noms corrects sont :

  • as24ci_archive
  • as24ci_compare
  • as24ci_search_filter

Un nom de shortcode mal orthographié ne produira rien. Vérifiez les fautes de frappe, les espaces supplémentaires à l'intérieur des crochets ou les caractères incorrects.

Étape 3 : Vérifier que l'extension est active

Les shortcodes sont enregistrés lors du chargement de l'extension. Si l'extension est désactivée ou présente une erreur fatale au chargement, le shortcode ne sera pas enregistré et affichera sa balise sous forme de texte brut ou ne produira rien du tout.

  1. Allez dans Extensions → Extensions installées et confirmez que ADP Car Market Hub est active et ne présente aucun indicateur d'erreur.
  2. Allez dans Outils → Santé du site et recherchez d'éventuels problèmes critiques.

Étape 4 : Vérifier que le CSS et le JavaScript se chargent

L'extension met en file d'attente son CSS et son JavaScript pour les pages qui contiennent les shortcodes [as24ci_archive] ou [as24ci_compare]. Elle détecte cela en appelant has_shortcode() sur le post_content de la page actuelle.

Si les ressources ne se chargent pas :

  1. Confirmez que le shortcode se trouve directement dans $post->post_content. Si le contenu est assemblé par un constructeur de pages qui stocke le contenu différemment (en dehors de post_content), has_shortcode() peut renvoyer faux et les ressources ne seront pas mises en file d'attente.
  2. Si vous utilisez un constructeur de pages, utilisez son bloc de shortcode ou son bloc HTML pour intégrer le shortcode de manière à ce qu'il fasse partie de post_content.
  3. Vérifiez les outils de développement du navigateur pour détecter d'éventuelles erreurs JavaScript qui pourraient empêcher le formulaire de filtre ou la galerie de s'initialiser.

Étape 5 : Vérifier l'attribut results_url pour [as24ci_search_filter]

Si le formulaire de filtre de recherche soumet vers la mauvaise page ou renvoie une erreur 404 :

  1. Vérifiez que l'attribut results_url pointe vers la page correcte où [as24ci_archive] est intégré (ou l'URL de l'archive du CPT).
  2. Si aucun results_url n'est fourni, l'extension utilise get_post_type_archive_link('as24ci_car'). Si cela ne renvoie rien (ce qui peut arriver avec des permaliens simples), elle se rabat sur /cars/. Assurez-vous que la page cible existe à cette URL.
  3. Lorsque vous utilisez une page WordPress standard comme page de résultats (et non l'archive du CPT), utilisez le permalien de la page comme results_url.

Étape 6 : Examiner la pagination avec les archives intégrées par shortcode

Sur une page utilisant [as24ci_archive], la pagination utilise les paramètres de requête ?paged= (ou ?page=) :

  1. Cliquer sur la page 2 devrait ajouter ?paged=2 à l'URL de la page.
  2. Si la page redirige pour supprimer les paramètres de requête (certains thèmes ou extensions de mise en cache font cela), la pagination ne fonctionnera plus.
  3. Confirmez que la structure des permaliens n'est pas "Simple" (les permaliens simples empêchent le routage correct de la pagination).
  4. Excluez la page du shortcode de la mise en cache de page, ou configurez le cache pour qu'il varie en fonction de paged et des paramètres de requête de filtrage.

Étape 7 : Vérifier le pré-filtrage avec les attributs de shortcode

Si le shortcode [as24ci_archive] utilise des attributs pour pré-filtrer les résultats (par exemple make="bmw") mais que le filtre n'est pas appliqué :

  1. Confirmez que la valeur de l'attribut correspond au slug réel d'un terme de taxonomie. Les slugs sont généralement en minuscules avec des tirets au lieu d'espaces (par exemple, mercedes-benz et non Mercedes-Benz).
  2. N'oubliez pas que les paramètres GET remplacent les attributs du shortcode. Si le visiteur navigue vers la page sans aucun paramètre d'URL, les valeurs par défaut du shortcode s'appliquent. Si l'URL contient des paramètres de filtre, ceux-ci ont la priorité.
  3. Confirmez que le filtre concerné est activé dans les réglages de filtre de l'extension. Les filtres désactivés sont ignorés pour le filtrage basé sur les paramètres GET, mais les remplacements d'attributs de shortcode contournent la vérification des filtres activés et s'appliquent malgré tout.

Notes opérationnelles

  • Le shortcode [as24ci_archive] crée sa propre WP_Query et remplace temporairement la requête globale $wp_query. Il restaure la requête d'origine après le rendu. Si d'autres extensions ou le thème lisent $wp_query pendant le contexte de rendu du shortcode, ils peuvent voir des valeurs inattendues.
  • Plusieurs shortcodes sur la même page sont pris en charge en principe, mais placer deux shortcodes [as24ci_archive] sur la même page n'est pas une configuration recommandée et peut produire un comportement inattendu avec la pagination et l'état des filtres.
  • Les shortcodes ne doivent pas être imbriqués les uns dans les autres.
  • Le shortcode [as24ci_search_filter] génère uniquement le code HTML du formulaire de filtre. Il n'inclut pas de résultats et n'effectue aucune requête de base de données pour les données des véhicules au moment du rendu. L'URL d'action du formulaire et les champs de routage masqués sont définis au moment du rendu en fonction de l'attribut results_url ou de l'URL de l'archive du CPT.

Dépannage

SymptômeCause probableAction à mener
Shortcode visible en texte brutExtension non active, ou shortcode dans un contexte non traitéConfirmer que l'extension est active ; déplacer le shortcode vers post_content
Le shortcode ne produit rienNom du shortcode mal orthographié ; aucun véhicule publiéVérifier l'orthographe ; confirmer que les véhicules existent et sont publiés
La grille d'archive s'affiche mais le CSS est manquanthas_shortcode() échoue car le contenu est en dehors de post_contentPlacer le shortcode directement dans post_content, pas dans un champ de constructeur
Les filtres ne fonctionnent pasFiltre désactivé dans les réglages, ou JS non chargéActiver les filtres dans le Référence du gestionnaire de mise en page ; vérifier la console du navigateur pour les erreurs
Le filtre de recherche redirige vers la mauvaise pageAttribut results_url manquant ou incorrectDéfinir results_url sur la page contenant [as24ci_archive]
Pagination casséePermaliens simples, ou cache supprimant les paramètres de requêtePasser à des permaliens non simples ; configurer des exclusions de cache
Le pré-filtrage par marque ne fonctionne pasIncohérence de slugUtiliser le slug exact de la taxonomie, pas le libellé d'affichage

Documents connexes