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 door single-as24ci_car.php (theme override) of het ingebouwde bestand van de plugin.
  • archive_template — vervangen door archive-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 AS24CI en zijn afhankelijk van plugin-klassen zoals Archive_Filters, Field_Mapping, Schema, Options en Locations.
  • Leestoegang tot de map templates/ van de plugin om de huidige ingebouwde markup als startpunt te kopiëren.

Stapsgewijze instructies

  1. Identificeer de template die u wilt overschrijven: - Pagina voor een enkel voertuig → single-as24ci_car.php. - Voertuigarchiefpagina → archive-as24ci_car.php.
  2. Kopieer het ingebouwde bestand uit de map templates/ van de plugin naar de root van uw (child) theme met exact dezelfde bestandsnaam.
  3. Bewerk de kopie in uw theme. Behoud de bestaande klasse-referenties en data-lookups, tenzij u zeker bent van de vervanging.
  4. Wis eventuele volledige pagina- of template-caches.
  5. 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 in single-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 met include vanuit absolute plugin-paden en passeren niet via locate_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 van archive-as24ci_car.php is daarom ook van invloed op de [as24ci_archive]-shortcode, maar de vergelijkings- en zoekfiltertemplates kunnen niet worden overschreven via locate_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_car single- 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.php of archive-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 AS24CI en verwijzen naar plugin-klassen. Als u slechts een deel van het bestand hebt gekopieerd, herstel dan de namespace-declaratie en de defined( 'ABSPATH' )-beveiliging, en houd de lookups voor Field_Mapping / Archive_Filters intact.
  • **Override verschijnt op het CPT-archief maar niet in de shortcode** — beide routes laden archive-as24ci_car.php uit de map templates/ van de plugin; de shortcode gebruikt geen locate_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.

Gerelateerde documenten