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 :
| Shortcode | Objectif |
|---|---|
[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) :
| Attribut | Valeurs | Description |
|---|---|---|
make | Chaîne de slug | Pré-filtrer par marque de véhicule. |
model | Chaîne de slug | Pré-filtrer par modèle de véhicule. |
price_min | Entier | Filtre de prix minimum. |
price_max | Entier | Filtre de prix maximum. |
fuel | Chaîne de slug | Pré-filtrer par type de carburant. |
body | Chaîne de slug | Pré-filtrer par type de carrosserie. |
order_by | price, mileage, date | Champ de tri. Par défaut : date. |
order | asc, desc | Direction du tri. Par défaut : asc. |
per_page | 12, 24, 48, 72, all | Ré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 :
| Attribut | Valeurs | Description |
|---|---|---|
results_url | URL | La 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_archiveas24ci_compareas24ci_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.
- Allez dans Extensions → Extensions installées et confirmez que ADP Car Market Hub est active et ne présente aucun indicateur d'erreur.
- 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 :
- 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 depost_content),has_shortcode()peut renvoyer faux et les ressources ne seront pas mises en file d'attente. - 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. - 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 :
- Vérifiez que l'attribut
results_urlpointe vers la page correcte où[as24ci_archive]est intégré (ou l'URL de l'archive du CPT). - Si aucun
results_urln'est fourni, l'extension utiliseget_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. - 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=) :
- Cliquer sur la page 2 devrait ajouter
?paged=2à l'URL de la page. - 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.
- Confirmez que la structure des permaliens n'est pas "Simple" (les permaliens simples empêchent le routage correct de la pagination).
- Excluez la page du shortcode de la mise en cache de page, ou configurez le cache pour qu'il varie en fonction de
pagedet 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é :
- 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-benzet nonMercedes-Benz). - 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é.
- 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 propreWP_Queryet 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_querypendant 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'attributresults_urlou de l'URL de l'archive du CPT.
Dépannage
| Symptôme | Cause probable | Action à mener |
|---|---|---|
| Shortcode visible en texte brut | Extension 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 rien | Nom 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 manquant | has_shortcode() échoue car le contenu est en dehors de post_content | Placer le shortcode directement dans post_content, pas dans un champ de constructeur |
| Les filtres ne fonctionnent pas | Filtre 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 page | Attribut results_url manquant ou incorrect | Définir results_url sur la page contenant [as24ci_archive] |
| Pagination cassée | Permaliens simples, ou cache supprimant les paramètres de requête | Passer à des permaliens non simples ; configurer des exclusions de cache |
| Le pré-filtrage par marque ne fonctionne pas | Incohérence de slug | Utiliser le slug exact de la taxonomie, pas le libellé d'affichage |