Dokumentation · Technische Dokumentation
Custom Post Types und Taxonomien
Dieses Dokument beschreibt die Custom Post Types und Taxonomien, die vom ADP Car Market Hub-Plugin registriert werden: welche Slugs sie verwenden, wie sie konfiguriert sind, welche Capabilities sie erfordern und wie sie im WordPress-Admin-Bereich erscheinen.
Wann dieses Dokument zu verwenden ist
Lesen Sie dieses Dokument, wenn Sie Folgendes tun müssen:
- Die genauen Post-Type- und Taxonomie-Slugs in benutzerdefinierten Abfragen, Templates oder Theme-Code referenzieren.
- Verstehen, welche Rollen Fahrzeuge und Leads bearbeiten können.
- Eine benutzerdefinierte Integration, REST-Abfrage oder
WP_Queryfür Fahrzeugdaten planen.
Für Details auf Spalten- und Feldebene siehe Database Schema und Data Model.
Übersicht
Das Plugin registriert zwei Custom Post Types und 15 Fahrzeugattribut-Taxonomien:
as24ci_car— öffentlicher Custom Post Type, der ein einzelnes Fahrzeuginserat darstellt. Registriert durchAS24CI\CPT.as24ci_lead— privater Custom Post Type, der Einsendungen von Kontaktformularen speichert. Registriert durchAS24CI\Leads_CPT.- 15 nicht-hierarchische Taxonomien, die an
as24ci_carangehängt sind. Registriert durchAS24CI\Taxonomies.
Alle übersetzbaren Strings verwenden die Textdomain adp-car-market-hub.
Anforderungen oder Voraussetzungen
Es ist keine zusätzliche Konfiguration erforderlich, um diese Objekte zu registrieren. Die
Post Types und Taxonomien werden bei der Aktion WordPress init
registriert, wann immer das Plugin aktiv ist.
Wenn Sie Fahrzeuge oder Leads über die REST-API abfragen möchten, beachten Sie bitte,
dass nur as24ci_car freigegeben ist (show_in_rest ist true). Der
Post Type as24ci_lead hat absichtlich show_in_rest auf
false gesetzt.
Der Post Type as24ci_car
Registriert in AS24CI\CPT::register_post_type() auf init mit Priorität
- Schlüsselkonfiguration:
| Argument | Wert |
|---|---|
public | true |
has_archive | true |
rewrite.slug | cars (sodass einzelne URLs /cars/<slug>/ sind und das Archiv /cars/ ist) |
show_in_rest | true |
show_in_menu | true (Admin-Menü auf oberster Ebene) |
menu_icon | dashicons-car |
menu_position | 3.1 (direkt unter dem Menü CMH Center an Position 3) |
supports | title, editor, excerpt, thumbnail, author |
capability_type | [ 'as24ci_car', 'as24ci_cars' ] |
map_meta_cap | true |
Da map_meta_cap aktiviert ist, ordnet WordPress generische Capabilities
(wie edit_post) dem benutzerdefinierten Singular-/Plural-Set des Plugins zu.
Permalinks
Jedes Fahrzeug wird unter /cars/<slug>/ veröffentlicht. Der Importer stellt
sicher, dass der Slug mit der AutoScout24 Listing ID über
AS24CI\Importer::ensure_slug_has_listing_id() endet, damit Re-Importe
die URL stabil halten. Nach der Aktivierung werden die Rewrite-Regeln einmalig geleert, damit
das /cars/-Archiv sofort funktioniert. Wenn das Archiv einen 404-Fehler zurückgibt,
besuchen Sie Einstellungen → Permalinks und speichern Sie einmal, um den Rewrite-Cache
neu aufzubauen.
Capabilities
AS24CI\Plugin::ensure_roles_and_caps() gewährt das Capability-Set as24ci_car /
as24ci_cars an:
- Die benutzerdefinierte Rolle
as24ci_editor(wird bei der Aktivierung erstellt, falls sie nicht existiert). - Die Rolle
administrator.
Die Capability manage_as24_imports (Plugin::CAP_MANAGE) schützt die
Benutzeroberfläche für Importer, Einstellungen, Tools und Protokolle und wird nur Administratoren
gewährt. WordPress „Redakteur“-Benutzer erhalten nicht automatisch
Fahrzeug-Capabilities.
Admin-UI: Meta-Boxen
AS24CI\CPT::register_meta_boxes() fügt dem Bearbeitungsbildschirm für Fahrzeuge
zwei Meta-Boxen hinzu:
- AutoScout24 API Import (
as24ci_details_editable) — kombinierte Meta-Box, die Folgendes enthält: - Die Tabs „Listing-Daten“, einer pro Mapping-Gruppe, die in
AS24CI\Field_Mapping::GROUPSdefiniert ist (außer Ausstattung, die durchAS24CI\Equipment_Metaboxgerendert wird). - Den Block AutoScout24 Ausstattung (gerendert durch
AS24CI\Equipment_Metabox::render_metabox()). - Die kombinierte Galerie (manuelle + importierte Bilder).
- Badges (
as24ci_badges) — Sidebar-Metabox, mit der der Redakteur die automatische Erkennung für Neu / Gebraucht / Aktion manuell überschreiben und das Flag „Top-Angebot“ umschalten kann. Die automatische Erkennung basiert auf den Spaltencondition_type,priceundlist_pricedes Fahrzeugs; manuelle Überschreibungen werden in den Postmeta-Schlüsseln_as24ci_badge_override_new,_as24ci_badge_override_used,_as24ci_badge_override_saleund_as24ci_top_offergespeichert.
Schreibgeschützte Felder
Felder, die ausschließlich vom Importer verwaltet werden, sind im
Bearbeitungsformular als schreibgeschützt markiert. Die Liste ist in AS24CI\CPT::FORM_READONLY_KEYS
definiert und umfasst:
- Identifikation:
_as24ci_id,_as24ci_seller_id,_as24ci_seller_vehicle_id,_as24ci_serial_number,_as24ci_vin,_as24ci_external_id,_as24ci_certification_number. - Status und Zeitstempel:
_as24ci_status,_as24ci_status_last_modified,_as24ci_created_date,_as24ci_last_modified_date. - Quell-Flags:
_as24ci_live,_as24ci_language,_as24ci_version_identification_method.
Lange Werte (_as24ci_teaser, _as24ci_description, _as24ci_images)
werden als Textareas gerendert. Numerische Felder (Preis, Kilometerstand, Abmessungen
usw.) werden als <input type="number"> gerendert.
Manuelle Galerie
Die kombinierte Galerie-Auswahl speichert manuell ausgewählte Anhang-IDs im
Postmeta-Schlüssel _as24ci_manual_image_ids. Manuelle
Galerie-Anhänge werden absichtlich als benutzerdefiniert behandelt und werden vom Lösch- oder
Deinstallationscode des Plugins niemals entfernt, selbst wenn importierte Anhänge gelöscht werden.
Admin-Listen-Spalten
AS24CI\CPT fügt der Admin-Liste Cars benutzerdefinierte Spalten hinzu (zum
Beispiel ein Vorschaubild und einen „Top-Angebot“-Stern). Die Spalte für das Vorschaubild
wird über Inline-CSS angepasst, das auf dem Bildschirm edit.php für den Post
Type injiziert wird.
Der Post Type as24ci_lead
Registriert in AS24CI\Leads_CPT::register_post_type() auf init mit
Priorität 5. Schlüsselkonfiguration:
| Argument | Wert |
|---|---|
public | false |
show_ui | false |
show_in_nav_menus | false |
show_in_rest | false |
supports | title |
Lead-Beiträge sind in den standardmäßigen WordPress-Admin-Listen nicht sichtbar,
da das Plugin einen dedizierten Tab zur Verwaltung von Leads bereitstellt. Der
Text der Kontaktformular-Einsendung wird als Beitragstitel (Name des Besuchers)
und in Postmeta-Schlüsseln gespeichert, die durch
AS24CI\Leads_CPT::save_lead() definiert sind:
_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(einer vonnew,contacted,closed,spam; Standardwert istnew)_as24ci_lead_appointment_date,_as24ci_lead_is_test_drive(für Probefahrten-Buchungen)
Die gültigen Statuswerte sind als Konstanten in
AS24CI\Leads_CPT (STATUS_NEW, STATUS_CONTACTED, STATUS_CLOSED,
STATUS_SPAM) definiert.
Fahrzeug-Taxonomien
AS24CI\Taxonomies::register_all() registriert 15 nicht-hierarchische Taxonomien, die an as24ci_car angehängt sind. Jede Taxonomie wird mit denselben Optionen registriert:
| Argument | Wert |
|---|---|
hierarchical | false (schlagwortartig) |
public | false |
publicly_queryable | false |
show_ui | true |
show_in_menu | true (Untermenü unter CMH Cars) |
show_in_rest | true |
show_in_nav_menus | false |
show_tagcloud | false |
show_admin_column | false |
rewrite | false (keine Rewrite-Regeln; kein öffentliches Begriffsarchiv) |
query_var | false |
Diese Taxonomien sind intern: Sie können im WordPress-Adminbereich bearbeitet und in der REST-API (show_in_rest=true) bereitgestellt werden, verfügen jedoch über keine Frontend-Seiten für Begriffsarchive. Siehe includes/class-as24ci-taxonomies.php:204-223.
Taxonomie-Referenz
| Taxonomie-Slug | Singular-Label | Plural-Label |
|---|---|---|
as24ci_brand | Marke | Marken |
as24ci_model | Modell | Modelle |
as24ci_body_type | Karosserieform | Karosserieformen |
as24ci_condition | Zustand | Zustände |
as24ci_fuel_type | Kraftstoffart | Kraftstoffarten |
as24ci_transmission | Getriebe | Getriebe |
as24ci_drive | Antrieb | Antriebe |
as24ci_ext_color | Außenfarbe | Außenfarben |
as24ci_int_color | Innenfarbe | Innenfarben |
as24ci_emission_std | Schadstoffklasse | Schadstoffklassen |
as24ci_energy_label | Energieeffizienzklasse (A-G) | Energieeffizienzklassen (A-G) |
as24ci_vehicle_cat | Fahrzeugkategorie | Fahrzeugkategorien |
as24ci_warranty_type | Garantieart | Garantiearten |
as24ci_warranty_det | Garantiedetails | Garantiedetails |
as24ci_cyl_arrange | Zylinderanordnung | Zylinderanordnungen |
Die oben aufgeführten Labels sind die unübersetzten Quell-Strings. Die tatsächlichen Labels, die in der Admin-Benutzeroberfläche gerendert werden, werden über die Textdomain adp-car-market-hub übersetzt.
Keine öffentlichen Begriffs-URLs
Da jede Taxonomie mit public=false, publicly_queryable=false, rewrite=false und query_var=false registriert ist, sind Begriffe nicht über eigenständige WordPress-Taxonomie-URLs erreichbar – beispielsweise wird /as24ci_brand/<term-slug>/ nicht aufgelöst und wird keiner Sitemap hinzugefügt (siehe class-as24ci-sitemap.php für die entsprechenden Ausschlüsse für Yoast / Rank Math / Core-Sitemaps). Die Fahrzeugfilterung wird durch die eigene Archiv-Abfrage-Logik des Plugins und die denormalisierten Spalten in der Tabelle as24_vehicles gesteuert, nicht durch öffentliche Begriffsarchive. Begriffe stehen weiterhin für Admin-Tools und die REST-API (show_in_rest=true) zur Verfügung.
Anzeigewerte
AS24CI\Taxonomies::get_display_value() ist der kanonische Helper für das Rendern eines kategorischen Fahrzeugfeldes im Frontend. Er bevorzugt den Namen des Taxonomie-Begriffs (der im Adminbereich umbenannt werden kann, ohne die Verknüpfung zu den importierten Daten zu verlieren) und fällt auf den rohen Postmeta-Wert zurück, wenn kein Begriff zugewiesen ist.
Schritt-für-Schritt-Anleitung
Die Inhaltstypen und Taxonomien erfordern keine manuelle Einrichtung. Die folgenden Arbeitsabläufe sind typisch:
- Das Plugin aktivieren. WordPress führt den Aktivierungs-Hook aus, der Rollen und Berechtigungen erstellt und die Rewrite-Regeln neu generiert. Das
/cars/-Archiv ist sofort verfügbar. - Den Importer ausführen. Importierte Fahrzeuge werden in den Inhaltstyp
as24ci_cargeschrieben, wobei ihre Taxonomie-Begriffe durch den Mapper zugewiesen werden. - Ein Fahrzeug bearbeiten. Öffnen Sie ein Fahrzeug über das Admin-Menü CMH Cars. Verwenden Sie die Meta-Box „AutoScout24 API Import“, um importierte Felder zu überschreiben (vorbehaltlich der oben genannten schreibgeschützten Liste), und die Meta-Box „Badges“, um zu steuern, welche Badges angezeigt werden.
- Taxonomien verwalten. Verwenden Sie die Untermenü-Einträge von CMH Cars (Marke, Modell, Karosserieform usw.), um Begriffe umzubenennen, zusammenzuführen oder auszublenden. Das Umbenennen eines Begriffs aktualisiert das angezeigte Label auf der gesamten Website, da
get_display_value()den Begriffsnamen gegenüber dem Rohwert bevorzugt. - Leads verwalten. Verwenden Sie den dedizierten Admin-Tab Leads. Die zugrunde liegenden
as24ci_lead-Beiträge werden in der Standard-Beitragsliste WordPress nicht angezeigt.
Konfigurations-Referenz
| Element | Speicherort | Hinweise |
|---|---|---|
as24ci_car Inhaltstyp | AS24CI\CPT::POST_TYPE | Hauptmenü auf oberster Ebene unter „Cars“ (Fahrzeuge). |
as24ci_lead Inhaltstyp | AS24CI\Leads_CPT::POST_TYPE | Im Standard-WordPress-Admin verborgen; verwaltet über den Leads-Tab. |
| Fahrzeug-Taxonomien | AS24CI\Taxonomies::TAXONOMY_SLUGS (auch über Taxonomies::get_taxonomy_slugs()) | 15 Einträge; nicht-hierarchisch. |
| Fahrzeug-Berechtigungssatz | as24ci_car / as24ci_cars | Zugeordnet über map_meta_cap. |
| Importer-/Einstellungsberechtigung | manage_as24_imports (Plugin::CAP_MANAGE) | Nur Administratoren gewährt. |
| Benutzerdefinierte Rolle | as24ci_editor | Wird bei der Aktivierung erstellt, falls nicht vorhanden. |
| Manuelle Galerie-Postmeta | _as24ci_manual_image_ids | Wird vom Plugin niemals entfernt. |
| Lead-Status-Postmeta | _as24ci_lead_status | Standardwert ist new; gültige Werte sind als Leads_CPT::STATUS_* definiert. |
Operational notes
- Der Post-Type und die Taxonomien werden auf
initregistriert. Eigener Code, der diese ausliest, darf nicht früher alsinitPriorität 5 ausgeführt werden. - Das Abfragen von Fahrzeugen über
WP_Queryist unkompliziert (post_type => 'as24ci_car'). Für typisierte numerische Abfragen oder Bereichsabfragen wird die dedizierteas24_vehicles-Tabelle überAS24CI\Vehicle_Repositorybevorzugt, da Postmeta-basierte Abfragen bei großen Katalogen langsam sein können. - Das Umbenennen eines Taxonomie-Begriffs aktualisiert das Frontend-Label sofort und erfordert keinen Re-Import: Der Helper
Taxonomies::get_display_value()liest den Begriffsnamen direkt aus. - Das Entfernen des Plugins, während
as24ci_delete_data_on_uninstallauf1gesetzt ist, löscht alleas24ci_car- undas24ci_lead-Beiträge sowie die in_as24ci_image_idsnachverfolgten Anhänge. Manuelle Galerie-Anhänge und Taxonomie-Begriffe werden nicht automatisch entfernt.
Troubleshooting
/cars/gibt 404 zurück. Rufen Sie Einstellungen → Permalinks auf und speichern Sie einmal, um die Rewrite-Regeln zu leeren. Das Plugin leert diese bereits bei der Aktivierung, sodass ein 404-Fehler in der Regel bedeutet, dass ein Drittanbieter-Plugin oder -Theme die Rewrite-Regeln überschrieben hat.- Ein Benutzer mit der Rolle Redakteur kann keine Fahrzeuge bearbeiten. Redakteure erhalten nicht automatisch das
as24ci_car-Berechtigungsset. Weisen Sie ihnen entweder die Rolleas24ci_editorzu oder fügen Sie die Berechtigungen des Plugins über Ihr Rollen-Verwaltungstool zur Rolle Redakteur hinzu. - Importierte Ausstattungsänderungen gehen beim nächsten Import verloren. Der Ausstattungs-Block wird vom Importer verwaltet. In der Ausstattungs-Metabox vorgenommene Änderungen können überschrieben werden, es sei denn, sie laufen über die manuelle Override-Ebene, die im Datenmodell beschrieben ist. Überprüfen Sie das Verhalten in der aktuellen Plugin-Version, bevor Sie sich auf manuelle Bearbeitungen der importierten Ausstattung verlassen.
- Lead-Beiträge erscheinen in einer generischen Admin-Liste. Der Post-Type setzt
show_uiauffalse; wenn Leads in einer benutzerdefinierten Admin-Ansicht erscheinen, überschreibt ein Drittanbieter-Plugin oder ein Filter den Standard. Verwenden Sie den integrierten Reiter Leads für das Lead-Management.