Documentation · Documentation technique

Types de publications personnalisés et taxonomies

Ce document décrit les types de publications personnalisés (custom post types) et les taxonomies enregistrés par le plugin ADP Car Market Hub : les slugs qu'ils utilisent, leur configuration, les permissions (capabilities) qu'ils requièrent et leur apparence dans l'administration WordPress.

Quand utiliser ce document

Lisez ce document si vous devez :

  • Référencer les slugs exacts des types de publications et des taxonomies dans des requêtes personnalisées, des modèles (templates) ou le code du thème.
  • Comprendre quels rôles peuvent modifier les véhicules et les leads.
  • Planifier une intégration personnalisée, une requête REST ou WP_Query sur les données de véhicules.

Pour des détails au niveau des colonnes et des champs, consultez le Database Schema et le Data Model.

Aperçu

Le plugin enregistre deux types de publications personnalisés et 15 taxonomies d'attributs de véhicules :

  • as24ci_car — type de publication personnalisé public qui représente une annonce de véhicule unique. Enregistré par AS24CI\CPT.
  • as24ci_lead — type de publication personnalisé privé qui stocke les soumissions de formulaires de contact. Enregistré par AS24CI\Leads_CPT.
  • 15 taxonomies non hiérarchiques associées à as24ci_car. Enregistrées par AS24CI\Taxonomies.

Toutes les chaînes traduisibles utilisent le domaine de texte adp-car-market-hub.

Configuration requise ou prérequis

Aucune configuration supplémentaire n'est requise pour enregistrer ces objets. Les types de publications et les taxonomies sont enregistrés lors de l'action WordPress init dès que le plugin est actif.

Si vous souhaitez interroger des véhicules ou des leads via l'API REST, notez que seul as24ci_car est exposé (show_in_rest est true). Le type de publication as24ci_lead a intentionnellement show_in_rest défini sur false.

Le type de publication as24ci_car

Enregistré dans AS24CI\CPT::register_post_type() sur init à la priorité 5. Configuration clé :

ArgumentValeur
publictrue
has_archivetrue
rewrite.slugcars (ainsi les URL uniques sont /cars/<slug>/ et l'archive est /cars/)
show_in_resttrue
show_in_menutrue (menu d'administration de premier niveau)
menu_icondashicons-car
menu_position3.1 (directement sous le menu CMH Center à la position 3)
supportstitle, editor, excerpt, thumbnail, author
capability_type[ 'as24ci_car', 'as24ci_cars' ]
map_meta_captrue

Parce que map_meta_cap est activé, WordPress mappe les permissions génériques (telles que edit_post) vers le jeu de permissions singulier/pluriel personnalisé du plugin.

Permaliens

Chaque véhicule est publié sous /cars/<slug>/. L'importateur s'assure que le slug se termine par l'ID d'annonce AutoScout24 via AS24CI\Importer::ensure_slug_has_listing_id() afin que les réimportations maintiennent l'URL stable. Après l'activation, les règles de réécriture sont vidées une fois pour que l'archive /cars/ fonctionne immédiatement. Si l'archive renvoie une erreur 404, visitez Réglages → Permaliens et enregistrez une fois pour reconstruire le cache de réécriture.

Permissions

AS24CI\Plugin::ensure_roles_and_caps() accorde le jeu de permissions as24ci_car / as24ci_cars à :

  • Le rôle personnalisé as24ci_editor (créé lors de l'activation s'il n'existe pas).
  • Le rôle administrator.

La permission manage_as24_imports (Plugin::CAP_MANAGE) restreint l'accès à l'interface utilisateur de l'importateur, des réglages, des outils et des journaux, et est accordée uniquement aux administrateurs. Les utilisateurs ayant le rôle "Éditeur" de WordPress ne reçoivent pas automatiquement les permissions liées aux véhicules.

Interface d'administration : boîtes de méta (meta boxes)

AS24CI\CPT::register_meta_boxes() ajoute deux boîtes de méta à l'écran d'édition de véhicule :

  • Importation API AutoScout24 (as24ci_details_editable) — boîte de méta combinée qui contient :
  • Les onglets "Données de l'annonce", un par groupe de mapping défini dans AS24CI\Field_Mapping::GROUPS (à l'exclusion des Équipements, qui sont rendus par AS24CI\Equipment_Metabox).
  • Le bloc d'Équipements AutoScout24 (rendu par AS24CI\Equipment_Metabox::render_metabox()).
  • La Galerie combinée (images manuelles + importées).
  • Badges (as24ci_badges) — boîte de méta latérale qui permet à l'éditeur de surcharger manuellement la détection automatique Neuf / Occasion / En promotion et de basculer le drapeau "Offre vedette". La détection automatique est basée sur les colonnes condition_type, price et list_price du véhicule ; les surcharges manuelles sont stockées dans les postmeta _as24ci_badge_override_new, _as24ci_badge_override_used, _as24ci_badge_override_sale et _as24ci_top_offer.

Champs en lecture seule

Les champs gérés exclusivement par l'importateur sont marqués en lecture seule dans le formulaire d'édition. La liste est définie dans AS24CI\CPT::FORM_READONLY_KEYS et comprend :

  • Identification : _as24ci_id, _as24ci_seller_id, _as24ci_seller_vehicle_id, _as24ci_serial_number, _as24ci_vin, _as24ci_external_id, _as24ci_certification_number.
  • Statut et horodatages : _as24ci_status, _as24ci_status_last_modified, _as24ci_created_date, _as24ci_last_modified_date.
  • Drapeaux de source : _as24ci_live, _as24ci_language, _as24ci_version_identification_method.

Les valeurs longues (_as24ci_teaser, _as24ci_description, _as24ci_images) sont rendues sous forme de zones de texte (textareas). Les champs numériques (prix, kilométrage, dimensions, etc.) sont rendus sous forme de <input type="number">.

Galerie manuelle

Le sélecteur de galerie combinée stocke les ID de pièces jointes sélectionnées manuellement dans la clé postmeta _as24ci_manual_image_ids. Les pièces jointes de la galerie manuelle sont intentionnellement traitées comme appartenant à l'utilisateur et ne sont jamais supprimées par le code de suppression ou de désinstallation du plugin, même lorsque les pièces jointes importées sont retirées.

Colonnes de la liste d'administration

AS24CI\CPT ajoute des colonnes personnalisées à la liste d'administration Cars (par exemple une miniature et une étoile "Offre vedette"). La colonne de miniature est dimensionnée via du CSS en ligne injecté sur l'écran edit.php pour ce type de publication.

Le type de publication as24ci_lead

Enregistré dans AS24CI\Leads_CPT::register_post_type() sur init à la priorité 5. Configuration clé :

ArgumentValeur
publicfalse
show_uifalse
show_in_nav_menusfalse
show_in_restfalse
supportstitle

Les publications de leads ne sont pas visibles dans les listes d'administration standard de WordPress car le plugin fournit un onglet dédié à la gestion des Leads. Le texte de soumission du formulaire de contact est stocké en tant que titre de la publication (nom du visiteur) et dans les clés postmeta définies par AS24CI\Leads_CPT::save_lead() :

  • _as24ci_lead_name, _as24ci_lead_email, _as24ci_lead_phone, _as24ci_lead_message
  • _as24ci_lead_vehicle_id, _as24ci_lead_vehicle_title, _as24ci_lead_vehicle_listing_id, _as24ci_lead_vehicle_url
  • _as24ci_lead_source_url, _as24ci_lead_date, _as24ci_lead_email_sent
  • _as24ci_lead_status (l'un des new, contacted, closed, spam ; par défaut new)
  • _as24ci_lead_appointment_date, _as24ci_lead_is_test_drive (pour les réservations d'essais routiers)

Les valeurs de statut valides sont exposées sous forme de constantes sur AS24CI\Leads_CPT (STATUS_NEW, STATUS_CONTACTED, STATUS_CLOSED, STATUS_SPAM).

Taxonomies de véhicules

AS24CI\Taxonomies::register_all() enregistre 15 taxonomies non hiérarchiques associées à as24ci_car. Chaque taxonomie est enregistrée avec les mêmes options :

ArgumentValeur
hierarchicalfalse (semblable à des étiquettes)
publictrue
show_uitrue
show_in_menutrue (sous-menu sous CMH Cars)
show_in_resttrue
show_in_nav_menusfalse
show_tagcloudfalse
show_admin_columnfalse
rewrite.slugLe slug de la taxonomie lui-même (par exemple as24ci_brand)
query_vartrue

Référence des taxonomies

Slug de taxonomieLibellé singulierLibellé pluriel
as24ci_brandMarqueMarques
as24ci_modelModèleModèles
as24ci_body_typeSilhouetteSilhouettes
as24ci_conditionÉtatÉtats
as24ci_fuel_typeCarburantCarburants
as24ci_transmissionBoîte de vitessesBoîtes de vitesses
as24ci_driveTransmissionTransmissions
as24ci_ext_colorCouleur extérieureCouleurs extérieures
as24ci_int_colorCouleur intérieureCouleurs intérieures
as24ci_emission_stdNorme d'émissionNormes d'émission
as24ci_energy_labelÉtiquette énergie (A-G)Étiquettes énergie (A-G)
as24ci_vehicle_catCatégorie de véhiculeCatégories de véhicules
as24ci_warranty_typeType de garantieTypes de garanties
as24ci_warranty_detDétails de la garantieDétails de la garantie
as24ci_cyl_arrangeConfiguration des cylindresConfigurations des cylindres

Les libellés ci-dessus sont les chaînes sources non traduites. Les libellés réels affichés dans l'interface d'administration sont traduits via le domaine de texte adp-car-market-hub.

URL des termes

Parce que chaque taxonomie est public et a query_var activé, les termes sont accessibles via les URL de taxonomie standard de WordPress (par exemple /as24ci_brand/<term-slug>/). Ces URL alimentent les filtres d'archives et peuvent être utilisées dans des menus de navigation personnalisés ou des widgets de thème.

Valeurs d'affichage

AS24CI\Taxonomies::get_display_value() est l'assistant canonique pour afficher un champ de véhicule catégoriel sur le frontend. Il privilégie le nom du terme de taxonomie (qui peut être renommé dans l'administration sans perdre le lien avec les données importées) et se rabat sur la valeur brute de postmeta si aucun terme n'est attribué.

Instructions étape par étape

Les types de publications et les taxonomies ne nécessitent pas de configuration manuelle. Les flux de travail suivants sont typiques :

  1. Activer le plugin. WordPress exécute le hook d'activation, qui crée les rôles et les permissions, et vide les règles de réécriture. L'archive /cars/ devient immédiatement disponible.
  2. Exécuter l'importateur. Les annonces importées sont écrites dans le type de publication as24ci_car avec leurs termes de taxonomie attribués par le mappeur.
  3. Modifier un véhicule. Ouvrez un véhicule depuis le menu d'administration CMH Cars. Utilisez la boîte de méta d'importation API AutoScout24 pour surcharger les champs importés (sous réserve de la liste en lecture seule ci-dessus) et la boîte de méta Badges pour contrôler quels badges sont affichés.
  4. Gérer les taxonomies. Utilisez les entrées du sous-menu CMH Cars (Marque, Modèle, Silhouette, etc.) pour renommer, fusionner ou masquer des termes. Le fait de renommer un terme met à jour le libellé affiché sur tout le site car get_display_value() préfère le nom du terme à la valeur brute.
  5. Gérer les leads. Utilisez l'onglet d'administration dédié Leads. Les publications sous-jacentes as24ci_lead ne sont pas exposées dans la liste de publications standard de WordPress.


Référence de configuration

ÉlémentEmplacementNotes
Type de publication as24ci_carAS24CI\CPT::POST_TYPEMenu d'administration de premier niveau sous "Cars".
Type de publication as24ci_leadAS24CI\Leads_CPT::POST_TYPEMasqué de l'administration WP standard ; géré via l'onglet Leads.
Taxonomies de véhiculesAS24CI\Taxonomies::TAXONOMY_SLUGS (également via Taxonomies::get_taxonomy_slugs())15 entrées ; non hiérarchiques.
Ensemble de capacités de véhiculeas24ci_car / as24ci_carsMappé via map_meta_cap.
Capacité de l'importateur/réglagesmanage_as24_imports (Plugin::CAP_MANAGE)Accordée uniquement aux administrateurs.
Rôle personnaliséas24ci_editorCréé lors de l'activation s'il est manquant.
Postmeta de galerie manuelle_as24ci_manual_image_idsJamais supprimé par le plugin.
Postmeta de statut de lead_as24ci_lead_statusPar défaut sur new ; valeurs valides définies comme Leads_CPT::STATUS_*.

Notes opérationnelles

  • Le type de publication et les taxonomies sont enregistrés sur init. Le code personnalisé qui les lit ne doit pas s'exécuter avant init priorité 5.
  • Interroger les véhicules via WP_Query est simple (post_type => 'as24ci_car'). Pour les requêtes numériques typées ou par plage, préférez la table dédiée as24_vehicles via AS24CI\Vehicle_Repository, car les requêtes basées sur postmeta peuvent être lentes sur les grands catalogues.
  • Renommer un terme de taxonomie met à jour l'étiquette du frontend immédiatement et ne nécessite pas de ré-importation : l'assistant Taxonomies::get_display_value() lit le nom du terme à la volée.
  • Supprimer le plugin alors que as24ci_delete_data_on_uninstall est défini sur 1 supprime toutes les publications as24ci_car et as24ci_lead ainsi que les pièces jointes suivies dans _as24ci_image_ids. Les pièces jointes de la galerie manuelle et les termes de taxonomie ne sont pas supprimés automatiquement.

Dépannage

  • /cars/ renvoie une erreur 404. Visitez Réglages → Permaliens et enregistrez une fois pour vider les règles de réécriture. Le plugin les vide déjà lors de l'activation, donc un 404 signifie généralement qu'un plugin tiers ou un thème a remplacé les règles de réécriture.
  • Un utilisateur avec le rôle Éditeur ne peut pas modifier les véhicules. Les éditeurs ne reçoivent pas automatiquement l'ensemble de capacités as24ci_car. Attribuez-leur soit le rôle as24ci_editor, soit ajoutez les capacités du plugin au rôle Éditeur via votre outil de gestion des rôles.
  • Les modifications d'équipements importés sont perdues lors de l'importation suivante. Le bloc Équipement est géré par l'importateur. Les modifications apportées dans la metabox Équipement peuvent être écrasées à moins qu'elles ne passent par la couche de surcharge manuelle décrite dans Modèle de données. Vérifiez le comportement dans la version actuelle du plugin avant de vous fier aux modifications manuelles des équipements importés.
  • Les publications de leads apparaissent dans une liste d'administration générique. Le type de publication définit show_ui sur false ; si les leads apparaissent dans une vue d'administration personnalisée, un plugin tiers ou un filtre remplace le comportement par défaut. Utilisez l'onglet intégré Leads pour la gestion des leads.

Documents connexes