Dokumentation · Integrationshandbuch
Anleitung für Template-Overrides
Dieses Dokument erklärt, wie Sie die vom ADP Car Market Hub-Plugin verwendeten PHP-Templates sicher anpassen können, indem Sie Override-Dateien in Ihrem Theme erstellen, und wie Sie diese Overrides bei Plugin-Updates wartbar halten.
Wann Sie dieses Dokument verwenden sollten
Verwenden Sie dieses Dokument, wenn Sie:
- Ein Entwickler sind, der die HTML-Struktur des Fahrzeug-Archivs, der einzelnen Fahrzeug-Detailseite oder der Vergleichsseite über das hinaus anpassen muss, was die Design-Einstellungen und Custom CSS erlauben.
- Ein benutzerdefiniertes Theme pflegen und Fahrzeugseiten nahtlos in die eigene HTML-Struktur des Themes integrieren möchten.
- Eine Website nach einem Plugin-Update überprüfen, um festzustellen, ob bestehende Overrides noch kompatibel sind.
Diese Anleitung richtet sich an PHP-Entwickler, die mit der WordPress-Theme-Entwicklung vertraut sind. Wenn Sie nur Farben, Schriftarten oder Abstände ändern müssen, verwenden Sie stattdessen Car Market Hub → Design oder das Feld für Custom CSS – ein Template-Override ist dafür nicht erforderlich. Siehe Anleitung für Custom CSS.
Übersicht
Das Plugin stellt Fallback-PHP-Templates für Fahrzeugseiten in seinem Verzeichnis templates/ bereit. WordPress sucht Templates in einer bestimmten Reihenfolge: Aktive Theme-Dateien werden vor den Plugin-Dateien geprüft. Das Plugin nutzt diesen Mechanismus gezielt über locate_template():
- WordPress prüft das aktive Theme-Verzeichnis auf eine Datei mit demselben Namen.
- Falls vorhanden, wird diese Theme-Datei verwendet.
- Falls nicht vorhanden, wird das eigene Template des Plugins als Fallback verwendet.
Das bedeutet, dass Sie jedes der Front-End-Templates des Plugins überschreiben können, indem Sie eine Datei mit demselben Namen im Stammverzeichnis Ihres Themes ablegen. Die Plugin-Datei wird dabei niemals verändert und bleibt bei Updates vor Ihren Anpassungen geschützt. Ihre Override-Datei verbleibt im Theme, das unter Ihrer eigenen Versionskontrolle steht.
Für Overrides verfügbare Templates
Die folgenden Template-Dateien werden über locate_template() aufgelöst und können überschrieben werden:
| Template-Dateiname | Zweck | Speicherort im Plugin |
|---|---|---|
single-as24ci_car.php | Einzelne Fahrzeug-Detailseite. Lädt das aktive Layout (derzeit immer single-as24ci_car-classic.php). | templates/single-as24ci_car.php |
archive-as24ci_car.php | Fahrzeug-Archiv und Listenansicht. Wird auch verwendet, wenn der Shortcode [as24ci_archive] im Template-Modus gerendert wird. | templates/archive-as24ci_car.php |
Die Vergleichsseite (page-as24ci_compare.php) und das Suchfilter-Partial (parts/search-filter.php) werden direkt vom Plugin geladen und nicht über locate_template() aufgelöst. Sie können mit dieser Methode nicht überschrieben werden. Überprüfen Sie dieses Verhalten in der aktuellen Plugin-Version, bevor Sie sich darauf verlassen.
Voraussetzungen
- Zugriff auf die Dateien des aktiven Themes (über FTP, SSH oder den WordPress-Datei-Editor).
- Ein Child-Theme wird dringend empfohlen, wenn Sie ein kommerzielles oder Parent-Theme verwenden. Wenn Sie Override-Dateien in einem Parent-Theme ablegen, gehen diese bei einer Aktualisierung des Parent-Themes verloren.
- Vertrautheit mit PHP und WordPress-Template-Tags (
get_header(),get_footer(),the_title()und ähnlichen).
Schritt-für-Schritt-Anleitung
Erstellen eines Template-Overrides
- Suchen Sie die Quelldatei. Finden Sie das Template, das Sie anpassen möchten, im Plugin-Verzeichnis unter
wp-content/plugins/adp-car-market-hub/templates/. Zum Beispielarchive-as24ci_car.php. - Kopieren Sie die Datei — nicht verschieben. Kopieren Sie die Datei in das Stammverzeichnis Ihres (Child-)Themes. Der Dateiname muss identisch sein:
- Für das Archiv:
wp-content/themes/your-theme/archive-as24ci_car.php- Für die Einzelansicht:wp-content/themes/your-theme/single-as24ci_car.php - Nehmen Sie Ihre Änderungen in der Theme-Kopie vor. Bearbeiten Sie die Kopie in Ihrem Theme. Die Originaldatei des Plugins bleibt unberührt.
- Testen Sie im Frontend. Rufen Sie ein Fahrzeug-Archiv oder eine Fahrzeug-Detailseite auf und überprüfen Sie, ob Ihre Änderungen angewendet werden.
Überprüfen, welches Template aktiv ist
Die WordPress-Seite Website-Zustand und Query-Monitor-Plugins (z. B. Query Monitor) können anzeigen, welche Template-Datei für eine bestimmte Anfrage verwendet wird. Alternativ können Sie einen temporären Kommentar am Anfang Ihrer Override-Datei einfügen und den Quelltext der Seite überprüfen, um sicherzustellen, dass die Datei geladen wird.
Kompatibilität nach Plugin-Updates wahren
Wenn das Plugin aktualisiert wird, können sich die mitgelieferten Templates in templates/ ändern. Ihre Override-Datei verbleibt im Theme und wird weiterhin verwendet – wenn sich jedoch die Template-Logik des Plugins geändert hat, ist Ihr Override möglicherweise veraltet.
Nach jedem Plugin-Update:
- Vergleichen Sie Ihre Override-Datei mit der entsprechenden Datei im aktualisierten Plugin-Verzeichnis. Ein Diff-Tool oder ein Code-Editor mit Dateivergleich kann hierbei hilfreich sein.
- Führen Sie alle relevanten Änderungen aus der neuen Version des Plugins in Ihr Override zusammen (Merge).
- Testen Sie die Fahrzeugseiten nach dem Zusammenführen im Frontend.
Wenn Sie Overrides minimal halten – also nur die Abschnitte enthalten, die Sie tatsächlich ändern müssen –, verringert sich der Aufwand beim Zusammenführen von Updates.
Konfigurationsreferenz
Es gibt kein Einstellungsfeld im Plugin, das Template-Overrides direkt steuert. Die Auflösungslogik ist Teil des WordPress-Hook-Systems und kann im Plugin-Admin-Bereich nicht geändert werden.
Die Design-Einstellungen unter Car Market Hub → Design gelten auch dann, wenn ein Template-Override verwendet wird, da das dynamische CSS unabhängig davon, welches Template ausgeliefert wird, über wp_head ausgegeben wird.
Betriebliche Hinweise
- Child-Theme-Anforderung. Wenn Sie ein kommerzielles oder Parent-Theme verwenden, erstellen Sie immer ein Child-Theme, bevor Sie Override-Dateien hinzufügen. Dateien, die direkt zu einem Parent-Theme hinzugefügt werden, werden bei Theme-Updates gelöscht.
- Das Override muss
get_header()undget_footer()aufrufen. Die eigenen Templates des Plugins rufen beide auf. Wenn Ihr Override diese weglässt, wird die Seite ohne die Navigation und den Footer des Themes gerendert. Dies ist fast nie erwünscht. - Plugin-Namespace beibehalten. Die Template-Dateien des Plugins deklarieren
namespace AS24CI;und verweisen auf interne Konstanten wieCPT::POST_TYPEundOptions::DESIGN_SINGLE_LAYOUT. Wenn Ihr Override eine dieser Konstanten verwendet, behalten Sie die Namespace-Deklaration bei oder verwenden Sie vollqualifizierte Klassennamen. - Shortcode-Rendermodus. Das Archiv-Template unterstützt zwei Rendermodi, die durch die globale Variable
$as24ci_render_modegesteuert werden:'template'(wenn es als CPT-Archivseite bereitgestellt wird) und'shortcode'(wenn es durch den Shortcode[as24ci_archive]eingebunden wird). Das Template lässtget_header()undget_footer()im Shortcode-Modus weg. Ihr Override sollte dieses Verhalten replizieren, wenn der Shortcode neben dem Archiv-Template korrekt funktionieren soll. - Stabilität der CSS-Klassen. Das CSS des Plugins hängt von Klassennamen im Template-HTML ab (z. B.
.as24ci-page,.as24ci-page-classic,.as24ci-archive-list,.as24ci-archive-row). Wenn Sie diese Klassen in Ihrem Override entfernen oder umbenennen, funktionieren das Stylesheet des Plugins und die Design-Einstellungen für diese Elemente nicht mehr. Ändern Sie Klassennamen nur, wenn Sie auch das entsprechende CSS im Feld für Custom CSS oder im Stylesheet Ihres Themes aktualisieren. alignfull-Klasse. Das Plugin fügt die Klassealignfullzum Wrapper.as24ci-pagehinzu, damit Block-Themes diesen auf die volle Breite ausdehnen. Wenn Sie diese Klasse in Ihrem Override entfernen, wird das Full-Width-Verhalten von Block-Themes nicht angewendet.- PHP-Version und WordPress-Versionsanforderungen. Die Templates des Plugins verwenden PHP-Funktionen, die mit den angegebenen Anforderungen des Plugins übereinstimmen. Siehe PHP- und Datenbank-Anforderungen.
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Was zu prüfen ist |
|---|---|---|
| Override-Datei wird nicht verwendet. | Die Datei befindet sich im falschen Verzeichnis, hat einen Tippfehler im Dateinamen oder liegt im Stammverzeichnis des Parent-Themes statt des Child-Themes. | Überprüfen Sie den genauen Dateinamen und Speicherort. Verwenden Sie Query Monitor oder prüfen Sie den Quelltext der Seite auf einen temporären Kommentar in der Override-Datei. |
| Fahrzeugseiten geben nach dem Erstellen des Overrides eine leere Seite oder einen PHP-Fehler aus. | Die Override-Datei enthält einen PHP-Syntaxfehler oder es fehlt ein erforderliches Include. | Überprüfen Sie das PHP-Fehlerprotokoll des Servers. Stellen Sie sicher, dass die Override-Datei PHP-Tags korrekt öffnet und schließt. |
| Plugin-CSS wird auf dem überschriebenen Template nicht angewendet. | Die Wrapper-Klasse .as24ci-page oder .as24ci-page-classic fehlt in der Ausgabe des Overrides. | Stellen Sie sicher, dass der äußere Wrapper <div class="as24ci-page as24ci-page-classic …"> im Override vorhanden ist. |
| Design-Einstellungen (Farben, Typografie) haben keine Wirkung. | Die dynamische CSS-Ausgabe basiert auf den Wrapper-Klassen des Plugins. Wenn diese fehlen, greifen die spezifischen CSS-Regeln nicht. | Stellen Sie die Wrapper-Klassen wie oben beschrieben wieder her. |
Der Shortcode [as24ci_archive] zeigt keinen Theme-Header oder -Footer an, wenn das Archiv-Override ebenfalls aktiv ist. | Das Override ruft immer get_header() und get_footer() auf, unabhängig von $as24ci_render_mode. | Fügen Sie eine Prüfung auf $as24ci_render_mode === 'template' hinzu, bevor Sie get_header() und get_footer() aufrufen, um die eigene Template-Logik des Plugins widerzuspiegeln. |