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_Query fü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 durch AS24CI\CPT.
  • as24ci_lead — ein privater eigener Inhaltstyp, der Einsendungen von Kontaktformularen speichert. Registriert durch AS24CI\Leads_CPT.
  • 15 nicht-hierarchische Taxonomien, die mit as24ci_car verknüpft sind. Registriert durch AS24CI\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:

ArgumentWert
publictrue
has_archivetrue
rewrite.slugcars (sodass einzelne URLs /cars/<slug>/ sind und das Archiv /cars/ ist)
show_in_resttrue
show_in_menutrue (Hauptmenü in der Administration)
menu_icondashicons-car
menu_position3.1 (direkt unter dem Menü CMH Center an Position 3)
supportstitle, editor, excerpt, thumbnail, author
capability_type[ 'as24ci_car', 'as24ci_cars' ]
map_meta_captrue

Da map_meta_cap aktiviert ist, ordnet WordPress generische Berechtigungen (wie edit_post) dem eigenen Singular-/Plural-Set des Plugins zu.

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::GROUPS definiert ist (ausgenommen Ausstattung, die von AS24CI\Equipment_Metabox gerendert 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 Fahrzeugspalten condition_type, price und list_price; manuelle Überschreibungen werden in den Postmeta-Feldern _as24ci_badge_override_new, _as24ci_badge_override_used, _as24ci_badge_override_sale und _as24ci_top_offer gespeichert.

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:

ArgumentWert
publicfalse
show_uifalse
show_in_nav_menusfalse
show_in_restfalse
supportstitle

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 von new, contacted, closed, spam; Standard ist new)
  • _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:

ArgumentWert
hierarchicalfalse (schlagwortartig)
publictrue
show_uitrue
show_in_menutrue (Untermenü unter CMH Autos)
show_in_resttrue
show_in_nav_menusfalse
show_tagcloudfalse
show_admin_columnfalse
rewrite.slugDer Taxonomie-Slug selbst (beispielsweise as24ci_brand)
query_vartrue

Taxonomie-Referenz

Taxonomie-SlugSingular-BezeichnungPlural-Bezeichnung
as24ci_brandMarkeMarken
as24ci_modelModellModelle
as24ci_body_typeKarosserieformKarosserieformen
as24ci_conditionZustandZustände
as24ci_fuel_typeKraftstoffartKraftstoffarten
as24ci_transmissionGetriebeGetriebe
as24ci_driveAntriebAntriebe
as24ci_ext_colorAußenfarbeAußenfarben
as24ci_int_colorInnenfarbeInnenfarben
as24ci_emission_stdSchadstoffklasseSchadstoffklassen
as24ci_energy_labelEnergieeffizienzklasse (A-G)Energieeffizienzklassen (A-G)
as24ci_vehicle_catFahrzeugkategorieFahrzeugkategorien
as24ci_warranty_typeGarantieartGarantiearten
as24ci_warranty_detGarantiedetailsGarantiedetails
as24ci_cyl_arrangeZylinderanordnungZylinderanordnungen

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:

  1. 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.
  2. Führen Sie den Importer aus. Importierte Angebote werden in den Inhaltstyp as24ci_car geschrieben, wobei ihre Taxonomie-Begriffe durch den Mapper zugewiesen werden.
  3. 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.
  4. 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.
  5. 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

ElementSpeicherortAnmerkungen
as24ci_car Post-TypAS24CI\CPT::POST_TYPEHauptmenü im Admin-Bereich unter „Cars“ (Fahrzeuge).
as24ci_lead Post-TypAS24CI\Leads_CPT::POST_TYPEIm Standard-WordPress-Admin ausgeblendet; verwaltet über den Reiter „Leads“.
Fahrzeug-TaxonomienAS24CI\Taxonomies::TAXONOMY_SLUGS (auch über Taxonomies::get_taxonomy_slugs())15 Einträge; nicht-hierarchisch.
Berechtigungssatz für Fahrzeugeas24ci_car / as24ci_carsZugeordnet über map_meta_cap.
Berechtigung für Importer/Einstellungenmanage_as24_imports (Plugin::CAP_MANAGE)Nur Administratoren gewährt.
Benutzerdefinierte Rolleas24ci_editorWird bei der Aktivierung erstellt, falls nicht vorhanden.
Manuelle Galerie-Postmeta_as24ci_manual_image_idsWird vom Plugin niemals entfernt.
Lead-Status-Postmeta_as24ci_lead_statusStandardwert ist new; gültige Werte sind als Leads_CPT::STATUS_* definiert.

Betriebliche Hinweise

  • Der Post-Typ und die Taxonomien werden bei init registriert. Benutzerdefinierter Code, der diese ausliest, darf nicht früher als init Priorität 5 ausgeführt werden.
  • Das Abfragen von Fahrzeugen über WP_Query ist unkompliziert (post_type => 'as24ci_car'). Für typisierte numerische Abfragen oder Bereichsabfragen sollte die dedizierte Tabelle as24_vehicles über AS24CI\Vehicle_Repository bevorzugt 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_uninstall auf 1 gesetzt ist, werden alle as24ci_car- und as24ci_lead-Beiträge sowie die in _as24ci_image_ids erfassten 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 Rolle as24ci_editor zu 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_ui auf false; 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.

Zugehörige Dokumente