Documentatie · Technische documentatie
Custom Post Types en Taxonomieën
Dit document beschrijft de custom post types en taxonomieën die worden geregistreerd door de ADP Car Market Hub-plugin: welke slugs ze gebruiken, hoe ze zijn geconfigureerd, welke capabilities ze vereisen en hoe ze verschijnen in de WordPress-beheeromgeving.
Wanneer u dit document moet gebruiken
Lees dit document als u het volgende moet doen:
- Verwijzen naar de exacte post type- en taxonomieslugs in aangepaste query's, templates of thema-code.
- Begrijpen welke rollen voertuigen en leads kunnen bewerken.
- Een aangepaste integratie, REST-query of
WP_Queryplannen op basis van voertuiggegevens.
Zie voor details op kolom- en veldniveau de Database Schema en het Data Model.
Overzicht
De plugin registreert twee custom post types en 15 taxonomieën voor voertuigattributen:
as24ci_car— openbaar custom post type dat een enkele voertuigadvertentie vertegenwoordigt. Geregistreerd doorAS24CI\CPT.as24ci_lead— privé custom post type dat inzendingen van contactformulieren opslaat. Geregistreerd doorAS24CI\Leads_CPT.- 15 niet-hiërarchische taxonomieën gekoppeld aan
as24ci_car. Geregistreerd doorAS24CI\Taxonomies.
Alle vertaalbare tekenreeksen gebruiken het adp-car-market-hub textdomain.
Vereisten of randvoorwaarden
Er is geen aanvullende configuratie vereist om deze objecten te registreren. De
post types en taxonomieën worden geregistreerd tijdens de WordPress init
actie wanneer de plugin actief is.
Als u voertuigen of leads wilt opvragen via de REST API, let er dan op dat
alleen as24ci_car is blootgesteld (show_in_rest is true). Het
as24ci_lead post type heeft opzettelijk show_in_rest ingesteld op
false.
Het as24ci_car post type
Geregistreerd in AS24CI\CPT::register_post_type() op init met prioriteit
- Belangrijkste configuratie:
| Argument | Waarde |
|---|---|
public | true |
has_archive | true |
rewrite.slug | cars (zodat afzonderlijke URL's /cars/<slug>/ zijn en het archief /cars/ is) |
show_in_rest | true |
show_in_menu | true (beheermenu op het hoogste niveau) |
menu_icon | dashicons-car |
menu_position | 3.1 (direct onder het CMH Center-menu op positie 3) |
supports | title, editor, excerpt, thumbnail, author |
capability_type | [ 'as24ci_car', 'as24ci_cars' ] |
map_meta_cap | true |
Omdat map_meta_cap is ingeschakeld, koppelt WordPress generieke capabilities
(zoals edit_post) aan de aangepaste enkelvoudige/meervoudige set van de plugin.
Permalinks
Elk voertuig wordt gepubliceerd onder /cars/<slug>/. De importeur zorgt ervoor
dat de slug eindigt op de AutoScout24 Listing ID via
AS24CI\Importer::ensure_slug_has_listing_id() zodat herhaalde imports
de URL stabiel houden. Na activering worden de rewrite-regels eenmalig geflusht zodat
het /cars/-archief onmiddellijk werkt. Als het archief een 404-fout retourneert,
ga dan naar Instellingen → Permalinks en sla eenmalig op om de rewrite-cache
opnieuw op te bouwen.
Capabilities
AS24CI\Plugin::ensure_roles_and_caps() verleent de as24ci_car /
as24ci_cars capability-set aan:
- De aangepaste
as24ci_editor-rol (gemaakt bij activering als deze nog niet bestaat). - De
administrator-rol.
De manage_as24_imports capability (Plugin::CAP_MANAGE) schermt de
gebruikersinterface voor de importeur, instellingen, tools en logs af en wordt alleen aan beheerders
verleend. WordPress "Redacteur"-gebruikers ontvangen niet automatisch
voertuig-capabilities.
Beheer-UI: metaboxen
AS24CI\CPT::register_meta_boxes() voegt twee metaboxen toe aan het bewerkscherm
van het voertuig:
- AutoScout24 API Import (
as24ci_details_editable) — gecombineerde metabox die het volgende bevat: - De tabbladen "Advertentiegegevens", één per mappinggroep gedefinieerd in
AS24CI\Field_Mapping::GROUPS(met uitzondering van Uitrusting, die wordt gerenderd doorAS24CI\Equipment_Metabox). - Het AutoScout24 Uitrusting-blok (gerenderd door
AS24CI\Equipment_Metabox::render_metabox()). - De gecombineerde Galerij (handmatige + geïmporteerde afbeeldingen).
- Badges (
as24ci_badges) — metabox in de zijbalk waarmee de redacteur handmatig de automatische detectie voor Nieuw / Gebruikt / Actie kan overschrijven en de vlag "Topaanbieding" kan in- of uitschakelen. Automatische detectie is gebaseerd op de kolommencondition_type,priceenlist_pricevan het voertuig; handmatige overschrijvingen worden opgeslagen in de postmeta_as24ci_badge_override_new,_as24ci_badge_override_used,_as24ci_badge_override_saleen_as24ci_top_offer.
Alleen-lezen velden
Velden die uitsluitend door de importeur worden beheerd, zijn in het
bewerkingsformulier gemarkeerd als alleen-lezen. De lijst is gedefinieerd in AS24CI\CPT::FORM_READONLY_KEYS
en bevat:
- Identificatie:
_as24ci_id,_as24ci_seller_id,_as24ci_seller_vehicle_id,_as24ci_serial_number,_as24ci_vin,_as24ci_external_id,_as24ci_certification_number. - Status en tijdstempels:
_as24ci_status,_as24ci_status_last_modified,_as24ci_created_date,_as24ci_last_modified_date. - Bronvlaggen:
_as24ci_live,_as24ci_language,_as24ci_version_identification_method.
Lange waarden (_as24ci_teaser, _as24ci_description, _as24ci_images)
worden gerenderd als textareas. Numerieke velden (prijs, kilometerstand, afmetingen,
enz.) worden gerenderd als <input type="number">.
Handmatige galerij
De gecombineerde galerijkiezer slaat handmatig geselecteerde bijlage-ID's op in
de postmeta-sleutel _as24ci_manual_image_ids. Handmatige galerijbijlagen
worden opzettelijk behandeld als eigendom van de gebruiker en worden nooit
verwijderd door de verwijderings- of de-installatiecode van de plugin, zelfs niet wanneer geïmporteerde
bijlagen worden verwijderd.
Kolommen in de beheerderslijst
AS24CI\CPT voegt aangepaste kolommen toe aan de Cars-beheerderslijst (bijvoorbeeld
een miniatuurafbeelding en een "Topaanbieding"-ster). De miniatuurkolom wordt
gegroot via inline CSS die wordt geïnjecteerd op het edit.php-scherm voor het post
type.
Het as24ci_lead post type
Geregistreerd in AS24CI\Leads_CPT::register_post_type() op init op
prioriteit 5. Belangrijkste configuratie:
| Argument | Waarde |
|---|---|
public | false |
show_ui | false |
show_in_nav_menus | false |
show_in_rest | false |
supports | title |
Lead-berichten zijn niet zichtbaar in de standaard WordPress-beheerderslijsten
omdat de plugin een speciaal tabblad voor Leads-beheer biedt. De
tekst van de contactformulierinzending wordt opgeslagen als de titel van het bericht (naam van de
bezoeker) en in postmeta-sleutels gedefinieerd door
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(een vannew,contacted,closed,spam; standaard ingesteld opnew)_as24ci_lead_appointment_date,_as24ci_lead_is_test_drive(voor proefritboekingen)
De geldige statuswaarden zijn beschikbaar als constanten op
AS24CI\Leads_CPT (STATUS_NEW, STATUS_CONTACTED, STATUS_CLOSED,
STATUS_SPAM).
Voertuigtaxonomieën
AS24CI\Taxonomies::register_all() registreert 15 niet-hiërarchische
taxonomieën gekoppeld aan as24ci_car. Elke taxonomie is geregistreerd met
dezelfde opties:
| Argument | Waarde |
|---|---|
hierarchical | false (tag-achtig) |
public | true |
show_ui | true |
show_in_menu | true (sub-menu onder CMH Cars) |
show_in_rest | true |
show_in_nav_menus | false |
show_tagcloud | false |
show_admin_column | false |
rewrite.slug | De taxonomie-slug zelf (bijvoorbeeld as24ci_brand) |
query_var | true |
Taxonomiereferentie
| Taxonomie-slug | Enkelvoudig label | Meervoudig label |
|---|---|---|
as24ci_brand | Merk | Merken |
as24ci_model | Model | Modellen |
as24ci_body_type | Carrosserie | Carrosserievormen |
as24ci_condition | Staat | Staten |
as24ci_fuel_type | Brandstoftype | Brandstoftypes |
as24ci_transmission | Transmissie | Transmissies |
as24ci_drive | Aandrijving | Aandrijvingen |
as24ci_ext_color | Exterieurkleur | Exterieurkleuren |
as24ci_int_color | Interieurkleur | Interieurkleuren |
as24ci_emission_std | Emissienorm | Emissienormen |
as24ci_energy_label | Energielabel (A-G) | Energielabels (A-G) |
as24ci_vehicle_cat | Voertuigcategorie | Voertuigcategorieën |
as24ci_warranty_type | Garantietype | Garantietypes |
as24ci_warranty_det | Garantiedetails | Garantiedetails |
as24ci_cyl_arrange | Cilinderopstelling | Cilinderopstellingen |
De bovenstaande labels zijn de onvertaalde bronreeksen. De werkelijke
labels die in de beheer-UI worden gerenderd, zijn vertaald via het
adp-car-market-hub textdomain.
Term-URL's
Omdat elke taxonomie public is en query_var heeft ingeschakeld, zijn termen
bereikbaar via standaard WordPress taxonomie-URL's (bijvoorbeeld
/as24ci_brand/<term-slug>/). Deze URL's sturen de archieffilters
aan en kunnen worden gebruikt in aangepaste navigatiemenu's of thema-widgets.
Weergavewaarden
AS24CI\Taxonomies::get_display_value() is de canonieke helper voor
het renderen van een categorisch voertuigveld op de frontend. Het geeft de voorkeur aan de
taxonomie-termnaam (die in de beheeromgeving kan worden hernoemd zonder de
koppeling met geïmporteerde gegevens te verliezen) en valt terug op de onbewerkte postmeta-waarde als
er geen term is toegewezen.
Stapsgewijze instructies
De post types en taxonomieën vereisen geen handmatige installatie. De volgende werkstromen zijn typisch:
- Activeer de plugin. WordPress voert de activeringshook uit, die
rollen en capabilities aanmaakt en rewrite-regels flusht. Het
/cars/-archief is onmiddellijk beschikbaar. - Voer de importeur uit. Geïmporteerde advertenties worden naar het
as24ci_carpost type geschreven met hun taxonomie-termen toegewezen door de mapper. - Bewerk een voertuig. Open een voertuig vanuit het CMH Cars-beheermenu. Gebruik de AutoScout24 API Import-metabox om geïmporteerde velden te overschrijven (onderworpen aan de hierboven genoemde alleen-lezen lijst) en de Badges-metabox om te bepalen welke badges worden getoond.
- Beheer taxonomieën. Gebruik de sub-menu-items van CMH Cars (Merk,
Model, Carrosserie, enz.) om termen te hernoemen, samen te voegen of te verbergen. Het hernoemen van een
term werkt het weergegeven label over de hele site bij omdat
get_display_value()de voorkeur geeft aan de termnaam boven de onbewerkte waarde. - Beheer leads. Gebruik het speciale tabblad Leads in de beheeromgeving. De
onderliggende
as24ci_lead-berichten worden niet getoond in de standaard WordPress-berichtenlijst.
Configuratiereferentie
| Item | Waar het zich bevindt | Opmerkingen |
|---|---|---|
as24ci_car post type | AS24CI\CPT::POST_TYPE | Hoofdmenu in het beheergedeelte onder "Cars". |
as24ci_lead post type | AS24CI\Leads_CPT::POST_TYPE | Verborgen in de standaard WordPress-beheeromgeving; beheerd via het tabblad Leads. |
| Voertuigtaxonomieën | AS24CI\Taxonomies::TAXONOMY_SLUGS (ook via Taxonomies::get_taxonomy_slugs()) | 15 items; niet-hiërarchisch. |
| Voertuig-capabilityset | as24ci_car / as24ci_cars | Gekoppeld via map_meta_cap. |
| Importer-/instellingencapability | manage_as24_imports (Plugin::CAP_MANAGE) | Alleen toegekend aan beheerders. |
| Aangepaste rol | as24ci_editor | Aangemaakt bij activering indien deze ontbreekt. |
| Handmatige galerij-postmeta | _as24ci_manual_image_ids | Wordt nooit door de plugin verwijderd. |
| Lead-status postmeta | _as24ci_lead_status | Standaard ingesteld op new; geldige waarden gedefinieerd als Leads_CPT::STATUS_*. |
Operationele opmerkingen
- Het post type en de taxonomieën worden geregistreerd op
init. Aangepaste code die deze uitleest, mag niet eerder worden uitgevoerd daninitprioriteit 5. - Het opvragen van voertuigen via
WP_Queryis eenvoudig (post_type => 'as24ci_car'). Geef voor getypeerde numerieke of bereikquery's de voorkeur aan de toegewijdeas24_vehicles-tabel viaAS24CI\Vehicle_Repository, omdat op postmeta gebaseerde query's traag kunnen zijn bij grote catalogi. - Het hernoemen van een taxonomieterm werkt het frontend-label onmiddellijk bij en
vereist geen hernieuwde import: de helper
Taxonomies::get_display_value()leest de termnaam direct uit. - Als de plugin wordt verwijderd terwijl
as24ci_delete_data_on_uninstallis ingesteld op1, worden alleas24ci_car- enas24ci_lead-berichten en de bijlagen die worden bijgehouden in_as24ci_image_idsverwijderd. Handmatige galerijbijlagen en taxonomietermen worden niet automatisch verwijderd.
Probleemoplossing
/cars/retourneert een 404-fout. Ga naar Instellingen → Permalinks en sla deze eenmalig op om de rewrite-regels te flushen. De plugin flusht deze al bij activering, dus een 404-fout betekent meestal dat een plugin of thema van derden de rewrite-regels heeft overschreven.- Een gebruiker met de rol Redacteur kan geen voertuigen bewerken. Redacteurs
ontvangen niet automatisch de
as24ci_carcapabilityset. Wijs hen de rolas24ci_editortoe of voeg de capabilities van de plugin toe aan de rol Redacteur via uw tool voor rolbeheer. - Geïmporteerde wijzigingen in de uitrusting gaan verloren bij de volgende import. Het uitrustingsblok wordt beheerd door de importer. Bewerkingen die in de uitrustingsmetabox worden uitgevoerd, kunnen worden overschreven, tenzij ze via de handmatige overschrijvingslaag lopen die wordt beschreven in Datamodel. Controleer de werking in de huidige plugin-versie voordat u vertrouwt op handmatige bewerkingen van geïmporteerde uitrusting.
- Lead-berichten verschijnen in een generieke beheerderslijst. Het post type stelt
show_uiin opfalse; als leads in een aangepaste beheerdersweergave verschijnen, overschrijft een plugin of filter van derden de standaardinstelling. Gebruik het ingebouwde tabblad Leads voor leadbeheer.