Documentatie · Technische documentatie
Template Overrides
Dit document legt uit hoe u de ingebouwde front-end templates van de ADP Car Market Hub plugin kunt overschrijven vanuit een (child) theme, zodat updates uw aanpassingen niet overschrijven.
Wanneer u dit document moet gebruiken
Lees dit document als u het volgende moet doen:
- De markup, lay-out of volgorde van velden op de pagina voor een enkel voertuig of het voertuigarchief aanpassen zonder de bronbestanden van de plugin te wijzigen.
- Theme-specifieke wrappers, sidebars of hooks toepassen op de pagina's van de plugin.
- Bestaande aanpassingen migreren naar een child theme om ze veilig te maken voor updates.
Zie het Frontend Template System voor de onderliggende flow voor het laden van templates. Zie Shortcodes voor template-gestuurde shortcodes.
Overzicht
De plugin rendert pagina's voor een enkel voertuig en het voertuigarchief via twee WordPress filters:
single_template— vervangen doorsingle-as24ci_car.php(theme override) of het ingebouwde bestand van de plugin.archive_template— vervangen doorarchive-as24ci_car.php(theme override) of het ingebouwde bestand van de plugin.
Voor elk filter roept de plugin eerst locate_template() aan. Als
het actieve theme (of het child theme ervan) een bestand met de
verwachte naam levert, wint dat bestand. Anders valt de plugin terug op
het bestand dat in de eigen map templates/ wordt meegeleverd.
Dit maakt overrides eenvoudig: plaats een correct benoemd bestand in uw theme en WordPress zal dit laden in plaats van de ingebouwde versie.
Vereisten of randvoorwaarden
- Een child theme wordt ten zeerste aanbevolen, zodat theme-updates uw overrides niet overschrijven.
- Bekendheid met de ingebouwde templatebestanden. Deze vallen onder de namespace
AS24CIen zijn afhankelijk van plugin-klassen zoalsArchive_Filters,Field_Mapping,Schema,OptionsenLocations. - Leestoegang tot de map
templates/van de plugin om de huidige ingebouwde markup als startpunt te kopiëren.
Stapsgewijze instructies
- Identificeer de template die u wilt overschrijven:
- Pagina voor een enkel voertuig →
single-as24ci_car.php. - Voertuigarchiefpagina →archive-as24ci_car.php. - Kopieer het ingebouwde bestand uit de map
templates/van de plugin naar de root van uw (child) theme met exact dezelfde bestandsnaam. - Bewerk de kopie in uw theme. Behoud de bestaande klasse-referenties en data-lookups, tenzij u zeker bent van de vervanging.
- Wis eventuele volledige pagina- of template-caches.
- Herlaad de relevante pagina op de front-end en controleer of de override is geladen (bijvoorbeeld door de paginabron te bekijken voor een markeringscommentaar dat u hebt toegevoegd).
Locaties voor overrides
De plugin gebruikt locate_template() met de kale bestandsnaam. Dat
betekent dat WordPress zoekt in:
- De rootmap van het actieve child theme.
- De rootmap van het actieve parent theme.
Submapstructuren binnen een theme (bijvoorbeeld
<theme>/templates/single-as24ci_car.php) worden niet doorzocht door
het filter van de plugin. Plaats override-bestanden in de root van het theme met
de exacte bestandsnaam.
Wat u kunt overschrijven
single-as24ci_car.php— de volledige pagina voor een enkel voertuig. De ingebouwde wrapper is bewust dun; de daadwerkelijke lay-out bevindt zich insingle-as24ci_car-classic.php. Het overschrijven van de wrapper betekent dat u de volledige verantwoordelijkheid neemt voor het kiezen en invoegen van een lay-out.archive-as24ci_car.php— de volledige voertuigarchiefpagina. Dit is ook het bestand dat de shortcode[as24ci_archive]invoegt (zie Beperkingen hieronder).
Wat niet direct overschrijfbaar is
- Template-onderdelen (bijv.
templates/parts/search-filter.php) worden geladen metincludevanuit absolute plugin-paden en passeren niet vialocate_template(). Om deze aan te passen, overschrijft u de parent-template die ze bevat en repliceert u de vereiste output, of gebruikt u de beschikbare hooks en filters van de plugin. - Shortcode-templates —
[as24ci_archive],[as24ci_compare]en[as24ci_search_filter]laden altijd de ingebouwde bestanden van de plugin (archive-as24ci_car.php,page-as24ci_compare.php,parts/search-filter.php). Een theme override vanarchive-as24ci_car.phpis daarom ook van invloed op de[as24ci_archive]-shortcode, maar de vergelijkings- en zoekfiltertemplates kunnen niet worden overschreven vialocate_template(). - Plugin CSS/JS waarvan de templates afhankelijk zijn. Overschrijf styling via de stylesheet van uw theme in plaats van door de in de wachtrij geplaatste assets van de plugin te verwijderen.
Operationele opmerkingen
- Controleer bij het upgraden van de plugin de changelog op wijzigingen in de ingebouwde templates. Als de plugin gegevens toevoegt of verwijdert die de template rendert, moet uw override mogelijk worden bijgewerkt.
- Vermijd het mengen van gedeeltelijke overrides met code die uitgaat van de structuur van het ingebouwde bestand. Houd de override dicht bij het origineel of documenteer de afwijking binnen het bestand.
- Theme overrides worden niet beïnvloed door automatische updates van de plugin, omdat WordPress alleen bestanden binnen de plugin-map bijwerkt.
- Overrides zijn van toepassing op zowel ingelogde beheerders als bezoekers. Er is geen mechanisme voor overrides per rol in de plugin.
- Overrides kunnen de post-type- of rechtencontroles die de filters toepassen
niet omzeilen: de override wordt alleen geladen voor legitieme
as24ci_carsingle- of archiefverzoeken.
Problemen oplossen
- Override-bestand wordt genegeerd — controleer of het bestand zich in de
root van het actieve theme bevindt en de exacte bestandsnaam gebruikt
(
single-as24ci_car.phpofarchive-as24ci_car.php). Controleer op een typfout of controleer of een parent theme het bestand al levert. - Fatale fout na override — de ingebouwde templates gebruiken de
namespace
AS24CIen verwijzen naar plugin-klassen. Als u slechts een deel van het bestand hebt gekopieerd, herstel dan de namespace-declaratie en dedefined( 'ABSPATH' )-beveiliging, en houd de lookups voorField_Mapping/Archive_Filtersintact. - **Override verschijnt op het CPT-archief maar niet in de
shortcode** — beide routes laden
archive-as24ci_car.phpuit de maptemplates/van de plugin; de shortcode gebruikt geenlocate_template(). Controleer uw override-pad en controleer of er geen caching-plugin is die een oudere versie van de pagina serveert. - Lay-out ziet er ongestijld uit na override — de ingebouwde CSS verwacht specifieke klassenamen. Behoud deze klassenamen in uw override of breid de stylesheet van het theme uit om de nieuwe markup te dekken.