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_Querysur 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é 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 associé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 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é :
| 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 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 parAS24CI\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 colonnescondition_type,priceetlist_pricedu véhicule ; les surcharges manuelles sont stockées 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 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é :
| 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 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 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 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 :
| Argument | Valeur |
|---|---|
hierarchical | false (semblable à des étiquettes) |
public | true |
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.slug | Le slug de la taxonomie lui-même (par exemple as24ci_brand) |
query_var | true |
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 | Silhouette | Silhouettes |
as24ci_condition | État | États |
as24ci_fuel_type | Carburant | Carburants |
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 énergie (A-G) | Étiquettes énergie (A-G) |
as24ci_vehicle_cat | Catégorie de véhicule | Catégories de véhicules |
as24ci_warranty_type | Type de garantie | Types de garanties |
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.
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 :
- 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. - 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 mappeur. - 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.
- 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. - Gérer les leads. Utilisez l'onglet d'administration dédié Leads. Les publications sous-jacentes
as24ci_leadne sont pas exposées dans la liste de publications standard de 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 de 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 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 avantinitpriorité 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. - Supprimer le plugin alors que
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 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ôleas24ci_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_uisurfalse; 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.