Dokumentation · Technische Dokumentation
Benutzerdefinierte Inhaltstypen und Taxonomien
Dieses Dokument beschreibt die vom Plugin ADP Car Market Hub registrierten eigenen Inhaltstypen (Custom Post Types) und Taxonomien: welche Slugs sie verwenden, wie sie konfiguriert sind, welche Berechtigungen sie erfordern und wie sie in der WordPress-Administration erscheinen.
Wann Sie dieses Dokument verwenden sollten
Lesen Sie dieses Dokument, wenn Sie Folgendes tun müssen:
- Die genauen Slugs für Inhaltstypen und Taxonomien in eigenen Abfragen, Templates oder Theme-Code referenzieren.
- Verstehen, welche Rollen Fahrzeuge und Leads bearbeiten können.
- Eine eigene Integration, REST-Abfrage oder
WP_Queryfür Fahrzeugdaten planen.
Details zu Spalten und Feldern finden Sie unter Datenbankschema und Datenmodell.
Übersicht
Das Plugin registriert zwei eigene Inhaltstypen und 15 Taxonomien für Fahrzeugattribute:
as24ci_car— ein öffentlicher eigener Inhaltstyp, der ein einzelnes Fahrzeugangebot darstellt. Registriert durchAS24CI\CPT.as24ci_lead— ein privater eigener Inhaltstyp, der Einsendungen von Kontaktformularen speichert. Registriert durchAS24CI\Leads_CPT.- 15 nicht-hierarchische Taxonomien, die mit
as24ci_carverknüpft sind. Registriert durchAS24CI\Taxonomies.
Alle übersetzbaren Zeichenketten verwenden die Textdomäne adp-car-market-hub.
Anforderungen oder Voraussetzungen
Für die Registrierung dieser Objekte ist keine zusätzliche Konfiguration erforderlich. Die Inhaltstypen und Taxonomien werden bei der Aktion WordPress init registriert, sobald 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 Inhaltstyp as24ci_lead hat absichtlich show_in_rest auf false gesetzt.
Der Inhaltstyp as24ci_car
Registriert in AS24CI\CPT::register_post_type() auf init mit Priorität 5. 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 (Hauptmenü in der Administration) |
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 Berechtigungen (wie edit_post) dem eigenen Singular-/Plural-Set des Plugins zu.
Permalinks
Jedes Fahrzeug wird unter /cars/<slug>/ veröffentlicht. Der Importer stellt über AS24CI\Importer::ensure_slug_has_listing_id() sicher, dass der Slug mit der AutoScout24-Angebots-ID endet, damit Re-Importe die URL stabil halten. Nach der Aktivierung werden die Rewrite-Regeln einmalig geleert, sodass das /cars/-Archiv sofort funktioniert. Wenn das Archiv einen 404-Fehler zurückgibt, rufen Sie Einstellungen → Permalinks auf und speichern Sie einmal, um den Rewrite-Cache neu aufzubauen.
Berechtigungen
AS24CI\Plugin::ensure_roles_and_caps() gewährt das Berechtigungsset as24ci_car / as24ci_cars an:
- Die eigene Rolle
as24ci_editor(wird bei der Aktivierung erstellt, falls sie noch nicht existiert). - Die Rolle
administrator.
Die Berechtigung manage_as24_imports (Plugin::CAP_MANAGE) schützt die Benutzeroberfläche für Importer, Einstellungen, Werkzeuge und Protokolle und wird nur Administratoren gewährt. Benutzer der Rolle „Redakteur“ (WordPress) erhalten nicht automatisch Fahrzeugberechtigungen.
Admin-Benutzeroberfläche: 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 „Angebotsdaten“, einer pro Mapping-Gruppe, die in
AS24CI\Field_Mapping::GROUPSdefiniert ist (ausgenommen Ausstattung, die vonAS24CI\Equipment_Metaboxgerendert wird). - Den Block AutoScout24 Ausstattung (gerendert von
AS24CI\Equipment_Metabox::render_metabox()). - Die kombinierte Galerie (manuelle + importierte Bilder).
- Badges (
as24ci_badges) — Sidebar-Meta-Box, 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 Fahrzeugspaltencondition_type,priceundlist_price; manuelle Überschreibungen werden in den Postmeta-Feldern_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. - Herkunfts-Flags:
_as24ci_live,_as24ci_language,_as24ci_version_identification_method.
Lange Werte (_as24ci_teaser, _as24ci_description, _as24ci_images) werden als Textbereiche (Textareas) gerendert. Numerische Felder (Preis, Kilometerstand, Maße 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 niemals durch den Lösch- oder Deinstallationscode des Plugins entfernt, selbst wenn importierte Anhänge gelöscht werden.
Admin-Listen-Spalten
AS24CI\CPT fügt der Admin-Liste Autos eigene Spalten hinzu (beispielsweise ein Vorschaubild und einen Stern für „Top-Angebot“). Die Spalte für das Vorschaubild wird über Inline-CSS dimensioniert, das auf dem edit.php-Bildschirm für den Inhaltstyp injiziert wird.
Der Inhaltstyp 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 eigenen 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; Standard istnew)_as24ci_lead_appointment_date,_as24ci_lead_is_test_drive(für Probefahrt-Buchungen)
Die gültigen Statuswerte sind als Konstanten in AS24CI\Leads_CPT definiert (STATUS_NEW, STATUS_CONTACTED, STATUS_CLOSED, STATUS_SPAM).
Fahrzeug-Taxonomien
AS24CI\Taxonomies::register_all() registriert 15 nicht-hierarchische Taxonomien, die mit as24ci_car verknüpft sind. Jede Taxonomie wird mit denselben Optionen registriert:
| Argument | Wert |
|---|---|
hierarchical | false (schlagwortartig) |
public | true |
show_ui | true |
show_in_menu | true (Untermenü unter CMH Autos) |
show_in_rest | true |
show_in_nav_menus | false |
show_tagcloud | false |
show_admin_column | false |
rewrite.slug | Der Taxonomie-Slug selbst (beispielsweise as24ci_brand) |
query_var | true |
Taxonomie-Referenz
| Taxonomie-Slug | Singular-Bezeichnung | Plural-Bezeichnung |
|---|---|---|
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 genannten Bezeichnungen sind die unübersetzten Quell-Zeichenketten. Die tatsächlichen Bezeichnungen, die in der Admin-Benutzeroberfläche gerendert werden, werden über die Textdomäne adp-car-market-hub übersetzt.
Begriff-URLs (Term-URLs)
Da jede Taxonomie public ist und query_var aktiviert hat, sind Begriffe über standardmäßige WordPress-Taxonomie-URLs erreichbar (beispielsweise /as24ci_brand/<term-slug>/). Diese URLs steuern die Archivfilter an und können in eigenen Navigationsmenüs oder Theme-Widgets verwendet werden.
Anzeigewerte
AS24CI\Taxonomies::get_display_value() ist die kanonische Hilfsfunktion zur Darstellung eines kategorischen Fahrzeugfeldes im Frontend. Sie bevorzugt den Namen des Taxonomie-Begriffs (der in der Administration umbenannt werden kann, ohne die Verknüpfung zu den importierten Daten zu verlieren) und greift 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:
- Aktivieren Sie das Plugin. WordPress führt den Aktivierungs-Hook aus, der Rollen und Berechtigungen erstellt und die Rewrite-Regeln leert. Das Archiv
/cars/ist sofort verfügbar. - Führen Sie den Importer aus. Importierte Angebote werden in den Inhaltstyp
as24ci_cargeschrieben, wobei ihre Taxonomie-Begriffe durch den Mapper zugewiesen werden. - Bearbeiten Sie ein Fahrzeug. Öffnen Sie ein Fahrzeug über das Admin-Menü CMH Autos. 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.
- Verwalten Sie Taxonomien. Verwenden Sie die Untermenü-Einträge von CMH Autos (Marke, Modell, Karosserieform usw.), um Begriffe umzubenennen, zusammenzuführen oder auszublenden. Das Umbenennen eines Begriffs aktualisiert die angezeigte Bezeichnung auf der gesamten Website, da
get_display_value()den Begriffnamen gegenüber dem rohen Wert bevorzugt. - Verwalten Sie Leads. Verwenden Sie den dedizierten Admin-Tab Leads. Die zugrunde liegenden
as24ci_lead-Beiträge werden in der standardmäßigen WordPress-Beitragsliste nicht angezeigt.
Konfigurationsreferenz
| Element | Speicherort | Anmerkungen |
|---|---|---|
as24ci_car Post-Typ | AS24CI\CPT::POST_TYPE | Hauptmenü im Admin-Bereich unter „Cars“ (Fahrzeuge). |
as24ci_lead Post-Typ | AS24CI\Leads_CPT::POST_TYPE | Im Standard-WordPress-Admin ausgeblendet; verwaltet über den Reiter „Leads“. |
| Fahrzeug-Taxonomien | AS24CI\Taxonomies::TAXONOMY_SLUGS (auch über Taxonomies::get_taxonomy_slugs()) | 15 Einträge; nicht-hierarchisch. |
| Berechtigungssatz für Fahrzeuge | as24ci_car / as24ci_cars | Zugeordnet über map_meta_cap. |
| Berechtigung für Importer/Einstellungen | 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. |
Betriebliche Hinweise
- Der Post-Typ und die Taxonomien werden bei
initregistriert. Benutzerdefinierter 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 sollte die dedizierte Tabelleas24_vehiclesüberAS24CI\Vehicle_Repositorybevorzugt werden, 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 Begriff-Namen direkt aus. - Wenn das Plugin entfernt wird, während
as24ci_delete_data_on_uninstallauf1gesetzt ist, werden alleas24ci_car- undas24ci_lead-Beiträge sowie die in_as24ci_image_idserfassten Anhänge gelöscht. Manuelle Galerie-Anhänge und Taxonomie-Begriffe werden nicht automatisch entfernt.
Fehlerbehebung
/cars/gibt einen 404-Fehler zurück. Rufen Sie Einstellungen → Permalinks auf und speichern Sie einmal, um die Rewrite-Regeln neu zu generieren. Das Plugin führt dies bereits bei der Aktivierung durch, sodass ein 404-Fehler in der Regel bedeutet, dass ein Drittanbieter-Plugin oder ein Theme die Rewrite-Regeln überschrieben hat.- Ein Benutzer mit der Rolle „Redakteur“ (Editor) kann keine Fahrzeuge bearbeiten. Redakteure erhalten nicht automatisch den Berechtigungssatz
as24ci_car. Weisen Sie ihnen entweder die Rolleas24ci_editorzu oder fügen Sie die Berechtigungen des Plugins über Ihr Rollenverwaltungstool der Redakteursrolle hinzu. - Importierte Ausstattungsänderungen gehen beim nächsten Import verloren. Der Ausstattungsblock wird vom Importer verwaltet. Änderungen, die in der Ausstattungs-Metabox vorgenommen wurden, werden möglicherweise überschrieben, es sei denn, sie laufen über die manuelle Überschreibungsebene, die im Datenmodell beschrieben ist. Überprüfen Sie das Verhalten in der aktuellen Plugin-Version, bevor Sie sich auf manuelle Bearbeitungen importierter Ausstattungen verlassen.
- Lead-Beiträge erscheinen in einer generischen Admin-Liste. Der Post-Typ setzt
show_uiauffalse; wenn Leads in einer benutzerdefinierten Admin-Ansicht erscheinen, überschreibt ein Drittanbieter-Plugin oder ein Filter den Standardwert. Verwenden Sie den integrierten Reiter Leads für die Lead-Verwaltung.