Documentation · Documentation technique
Types de publication personnalisés et taxonomies
Ce document décrit les types de publications personnalisés et les taxonomies enregistrés par le plugin ADP Car Market Hub : quels slugs ils utilisent, comment ils sont configurés, quelles capacités ils requièrent et comment ils apparaissent 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 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_Querypar rapport aux données des véhicules.
Pour les détails au niveau des colonnes et des champs, voir Database Schema et 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 seule annonce de véhicule. Enregistré parAS24CI\CPT.as24ci_lead— type de publication personnalisé privé qui stocke les soumissions de formulaires de contact. Enregistré parAS24CI\Leads_CPT.- 15 taxonomies non hiérarchiques rattachées à
as24ci_car. Enregistrées parAS24CI\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 sur l'action WordPress init
chaque fois 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é
- Configuration clé :
| Argument | Valeur |
|---|---|
public | true |
has_archive | true |
rewrite.slug | cars (ainsi les URL uniques sont /cars/<slug>/ et l'archive est /cars/) |
show_in_rest | true |
show_in_menu | true (menu d'administration de premier niveau) |
menu_icon | dashicons-car |
menu_position | 3.1 (directement sous le menu CMH Center à la position 3) |
supports | title, editor, excerpt, thumbnail, author |
capability_type | [ 'as24ci_car', 'as24ci_cars' ] |
map_meta_cap | true |
Parce que map_meta_cap est activé, WordPress mappe les capacités génériques
(telles que edit_post) à l'ensemble 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 afin 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.
Capacités
AS24CI\Plugin::ensure_roles_and_caps() accorde l'ensemble de capacités 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 capacité 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 « Éditeur » de WordPress ne reçoivent pas automatiquement
les capacités 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
du véhicule :
- AutoScout24 API Import (
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 générés parAS24CI\Equipment_Metabox). - Le bloc d'Équipements AutoScout24 (généré par
AS24CI\Equipment_Metabox::render_metabox()). - La Galerie combinée (images manuelles + importées).
- Badges (
as24ci_badges) — boîte de méta de la barre latérale qui permet à l'éditeur de remplacer manuellement la détection automatique Neuf / Occasion / Vente et de basculer le drapeau « Offre phare ». La détection automatique est basée sur les colonnescondition_type,priceetlist_pricedu véhicule ; les remplacements manuels sont stockés dans les postmeta_as24ci_badge_override_new,_as24ci_badge_override_used,_as24ci_badge_override_saleet_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 affichées sous forme de zones de texte (textareas). Les champs numériques (prix, kilométrage, dimensions,
etc.) sont affichés 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 supprimé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 phare »). La colonne de miniature est
dimensionnée via un CSS en ligne injecté sur l'écran edit.php pour le type de publication.
Le type de publication as24ci_lead
Enregistré dans AS24CI\Leads_CPT::register_post_type() sur init à la
priorité 5. Configuration clé :
| Argument | Valeur |
|---|---|
public | false |
show_ui | false |
show_in_nav_menus | false |
show_in_rest | false |
supports | title |
Les publications de leads ne sont pas visibles dans les listes d'administration standards 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 desnew,contacted,closed,spam; par défautnew)_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 des véhicules
AS24CI\Taxonomies::register_all() enregistre 15 taxonomies non hiérarchiques rattachées à as24ci_car. Chaque taxonomie est enregistrée avec les mêmes options :
| Argument | Valeur |
|---|---|
hierarchical | false (semblable à des étiquettes) |
public | false |
publicly_queryable | false |
show_ui | true |
show_in_menu | true (sous-menu sous CMH Cars) |
show_in_rest | true |
show_in_nav_menus | false |
show_tagcloud | false |
show_admin_column | false |
rewrite | false (pas de règles de réécriture ; pas d'archive publique de termes) |
query_var | false |
Ces taxonomies sont internes : modifiables dans l'administration WordPress et exposées dans l'API REST (show_in_rest=true), mais sans pages d'archives de termes côté frontend. Voir includes/class-as24ci-taxonomies.php:204-223.
Référence des taxonomies
| Slug de taxonomie | Libellé singulier | Libellé pluriel |
|---|---|---|
as24ci_brand | Marque | Marques |
as24ci_model | Modèle | Modèles |
as24ci_body_type | Type de carrosserie | Types de carrosserie |
as24ci_condition | État | États |
as24ci_fuel_type | Type de carburant | Types de carburant |
as24ci_transmission | Boîte de vitesses | Boîtes de vitesses |
as24ci_drive | Transmission | Transmissions |
as24ci_ext_color | Couleur extérieure | Couleurs extérieures |
as24ci_int_color | Couleur intérieure | Couleurs intérieures |
as24ci_emission_std | Norme d'émission | Normes d'émission |
as24ci_energy_label | Étiquette énergétique (A-G) | Étiquettes énergétiques (A-G) |
as24ci_vehicle_cat | Catégorie de véhicule | Catégories de véhicules |
as24ci_warranty_type | Type de garantie | Types de garantie |
as24ci_warranty_det | Détails de la garantie | Détails de la garantie |
as24ci_cyl_arrange | Configuration des cylindres | Configurations 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.
Pas d'URL publiques pour les termes
Comme chaque taxonomie est enregistrée avec public=false, publicly_queryable=false, rewrite=false et query_var=false, les termes ne sont pas accessibles via des URL de taxonomie WordPress autonomes — par exemple, /as24ci_brand/<term-slug>/ ne se résout pas et n'est ajouté à aucun plan de site (voir class-as24ci-sitemap.php pour les exclusions correspondantes de Yoast / Rank Math / plan de site natif). Le filtrage des véhicules est géré par la propre logique de requête d'archive du plugin et par les colonnes dénormalisées de la table as24_vehicles, et non par des archives de termes publiques. Les termes restent disponibles pour les outils d'administration et l'API REST (show_in_rest=true).
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 :
- Activer le plugin. WordPress exécute le hook d'activation, qui crée les rôles et les capacités, et vide les règles de réécriture. L'archive
/cars/devient immédiatement disponible. - Exécuter l'importateur. Les annonces importées sont écrites dans le type de publication
as24ci_caravec leurs termes de taxonomie attribués par le mapper. - Modifier un véhicule. Ouvrez un véhicule depuis le menu d'administration CMH Cars. Utilisez la boîte de métadonnées d'importation de l'API AutoScout24 pour remplacer les champs importés (sous réserve de la liste en lecture seule ci-dessus) et la boîte de métadonnées Badges pour contrôler quels badges sont affichés.
- Gérer les taxonomies. Utilisez les entrées du sous-menu CMH Cars (Marque, Modèle, Type de carrosserie, etc.) pour renommer, fusionner ou masquer des termes. Le fait de renommer un terme met à jour le libellé affiché sur l'ensemble du site car
get_display_value()préfère le nom du terme à la valeur brute. - Gérer les leads. Utilisez l'onglet d'administration dédié Leads. Les publications
as24ci_leadsous-jacentes ne sont pas exposées dans la liste de publications standard WordPress.
Référence de configuration
| Élément | Emplacement | Notes |
|---|---|---|
Type de publication as24ci_car | AS24CI\CPT::POST_TYPE | Menu d'administration de premier niveau sous "Cars". |
Type de publication as24ci_lead | AS24CI\Leads_CPT::POST_TYPE | Masqué de l'administration WP standard ; géré via l'onglet Leads. |
| Taxonomies des véhicules | AS24CI\Taxonomies::TAXONOMY_SLUGS (également via Taxonomies::get_taxonomy_slugs()) | 15 entrées ; non hiérarchiques. |
| Ensemble de capacités de véhicule | as24ci_car / as24ci_cars | Mappé via map_meta_cap. |
| Capacité de l'importateur/réglages | manage_as24_imports (Plugin::CAP_MANAGE) | Accordée uniquement aux administrateurs. |
| Rôle personnalisé | as24ci_editor | Créé lors de l'activation s'il est manquant. |
| Postmeta de galerie manuelle | _as24ci_manual_image_ids | Jamais supprimé par le plugin. |
| Postmeta de statut de lead | _as24ci_lead_status | Par défaut new ; valeurs valides définies comme Leads_CPT::STATUS_*. |
Notes opérationnelles
- Le type de publication (post type) et les taxonomies sont enregistrés sur
init. Le code personnalisé qui les lit ne doit pas s'exécuter avantinitavec une priorité de 5. - Interroger les véhicules via
WP_Queryest simple (post_type => 'as24ci_car'). Pour les requêtes numériques typées ou par plage, préférez la table dédiéeas24_vehiclesviaAS24CI\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. - La suppression du plugin lorsque
as24ci_delete_data_on_uninstallest défini sur1supprime toutes les publicationsas24ci_caretas24ci_leadainsi que les pièces jointes suivies dans_as24ci_image_ids. Les pièces jointes manuelles de la galerie 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 code 404 signifie généralement qu'un plugin ou un thème tiers a remplacé les règles de réécriture.- Un utilisateur ayant 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 le rôleas24ci_editorou 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 le 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_uisurfalse; si les leads apparaissent dans une vue d'administration personnalisée, un plugin ou un filtre tiers surcharge le comportement par défaut. Utilisez l'onglet intégré Leads pour la gestion des leads.