Documentatie · Ontwikkelaarsdocumentatie
Templatesysteem en overrides
Dit document beschrijft hoe de ADP Car Market Hub-plugin zijn front-end templates laadt en hoe een thema deze kan overschrijven. Het toont de bestanden in de map templates/ van de plugin en legt uit welke via de standaard WordPress-templatehiërarchie door het thema kunnen worden overschreven en welke rechtstreeks door shortcodes worden geladen.
Wanneer u dit document moet gebruiken
Lees dit document wanneer u:
- De markup van de detailpagina van een voertuig, het voertuigarchief of de vergelijkingspagina wilt aanpassen vanuit een thema of child-thema.
- Een klein gedeelte (bijvoorbeeld het zoekfilterformulier) wilt vervangen zonder de volledige template te forken.
- Wilt begrijpen welke templatebestanden veilig kunnen worden overschreven en welke tussen releases kunnen veranderen.
Zie Custom Post Types And Taxonomies voor de post types en taxonomieën die deze templates renderen. Zie Shortcodes For Developers voor de shortcodes die template-onderdelen rechtstreeks laden.
Overzicht
De plugin levert zijn templates in de map templates/ van de plugin. Twee mechanismen maken hier gebruik van:
- WordPress-templatehiërarchiefilters. De plugin maakt verbinding met
single_templateenarchive_template. Voor beide filters roept het eerstlocate_template()aan, zodat een actief thema of child-thema zijn eigen kopie van het bestand kan leveren. Als er geen thema-override wordt gevonden, wordt de meegeleverde template van de plugin gebruikt. - Directe shortcode-rendering. De shortcodes voor de vergelijkingspagina (
[as24ci_compare]) en het zelfstandige zoekfilter ([as24ci_search_filter]) laden hun templates rechtstreeks uit de maptemplates/van de plugin. Ze raadplegen het thema niet voor een override.
Het resultaat is dat de detailpagina van het voertuig en het voertuigarchief netjes kunnen worden overschreven door een bestand in het actieve thema te plaatsen, terwijl de vergelijkingspagina en het zoekfilter alleen veranderen wanneer u hun uitvoer via een ander mechanisme wijzigt of filtert.
Bestanden geleverd onder templates/
Templates op het hoogste niveau:
archive-as24ci_car.php— overzicht van het voertuigarchief.single-as24ci_car.php— detailpagina van het voertuig (standaardlay-out).single-as24ci_car-classic.php— alternatieve "klassieke" detail-lay-out.page-as24ci_compare.php— vergelijkingspagina gerenderd door[as24ci_compare].
Partials en assets:
parts/search-filter.php— het zoekfilterformulier gerenderd door[as24ci_search_filter].icons/— SVG-icoondefinities die door de templates worden gebruikt.css/enjs/— front-end stylesheets en scripts die samen met de templates worden geleverd en door de asset-loader in de wachtrij worden geplaatst (zie Frontend Assets).
Door het thema overschrijfbare templates
Deze bestanden worden geladen via single_template / archive_template filters en respecteren daarom het thema:
| Template | Bestandsnaam override (plaatsen in actief thema) |
|---|---|
| Detailpagina voertuig | single-as24ci_car.php |
| Voertuigarchief | archive-as24ci_car.php |
De plugin roept locate_template( '<file-name>.php' ) aan zonder subdirectory-voorvoegsel, dus het override-bestand komt rechtstreeks in de root van het actieve thema (of de root van het child-thema). Als locate_template() een pad retourneert, gebruikt de plugin dit; anders valt deze terug op de meegeleverde template.
Templates die niet via de themahiërarchie worden geladen
Deze bestanden worden rechtstreeks door de plugin geladen en worden niet opgepikt door locate_template():
| Template | Geladen door |
|---|---|
page-as24ci_compare.php | [as24ci_compare] shortcode |
parts/search-filter.php | [as24ci_search_filter] shortcode |
single-as24ci_car-classic.php | Geselecteerd uit de instellingen van de detailpagina in plaats van via het thema |
icons/ partials | Inbegrepen door de bovenstaande templates |
Om deze aan te passen, heeft u drie betrouwbare opties:
- Bouw een wrapper-pagina of template in uw thema die de relevante shortcode aanroept en de uitvoer ervan omringt met uw eigen markup.
- Gebruik de action en filter hooks die de plugin biedt (zie Hooks And Filters, Actions Reference, Filters Reference) om het gedrag te wijzigen in plaats van de markup.
- Fork als laatste redmiddel het bestand naar uw thema en laad het vanuit uw eigen template; u bent dan zelf verantwoordelijk voor het synchroon houden met toekomstige plugin-releases.
Stapsgewijze instructies
De detailpagina van het voertuig overschrijven
- Kopieer
single-as24ci_car.phpuit de maptemplates/van de plugin. - Plak het in de root van uw actieve thema (of child-thema).
- Bewerk de kopie om uw wijzigingen aan te brengen.
- Herlaad een detailpagina van een voertuig. WordPress zal uw bestand laden via
locate_template()in plaats van het meegeleverde bestand van de plugin.
Het voertuigarchief overschrijven
- Kopieer
archive-as24ci_car.phpuit de maptemplates/van de plugin. - Plak het in de root van uw actieve thema (of child-thema).
- Bewerk de kopie. Herlaad de archiefpagina (standaard
/cars/) om uw versie te zien.
De vergelijkingspagina of het zoekfilterformulier aanpassen
- Wikkel de relevante shortcode in een aangepaste paginatemplate of bloklay-out in uw thema, of fork de onderliggende template naar uw thema en laad deze vanuit uw eigen template.
- Controleer of alle plugin-assets waarvan u afhankelijk bent (CSS/JS, zie Frontend Assets) nog steeds in de wachtrij staan op uw aangepaste pagina.
Operationele opmerkingen
- Gebruik een child-thema. Plaats overrides in een child-thema om te voorkomen dat u ze verliest wanneer het hoofdthema wordt bijgewerkt.
- Interactie met de Layout Manager. De plugin bevat een Layout Manager die blokken binnen de detail- en archiefpagina's van voertuigen rangschikt, geconfigureerd vanuit de beheerinterface van de plugin. Als u de detail- of archieftemplate volledig vervangt, omzeilt u ook de Layout Manager. Gebruik selectieve, op hooks gebaseerde wijzigingen wanneer u dat gedrag wilt behouden.
- Activering van de vergelijkingspagina. De vergelijkingspagina wordt gemaakt bij activering. De pagina zelf bevat simpelweg de
[as24ci_compare]-shortcode, dus de inhoud ervan wordt gerenderd door de plugin-template, niet doorsingle_template/archive_template. - Shortcode op elke pagina. Omdat
[as24ci_archive]de archief-renderer hergebruikt, kunt u het overzicht in elke WordPress-pagina of bloklay-out insluiten zonder de archieftemplate te overschrijven. - Assets in de wachtrij plaatsen. Front-end CSS en JavaScript die met de plugin worden meegeleverd, worden voorwaardelijk in de wachtrij geplaatst op basis van de huidige pagina (detailpagina, archief, shortcode-gebruik). Als u een aangepaste wrapper-template bouwt die niet aan de standaardvoorwaarden voldoet, worden de relevante plugin-assets mogelijk niet automatisch in de wachtrij geplaatst.
- Controleer het gedrag in de huidige plugin-versie voordat u een aangepast thema publiceert. Templatestructuur en blokmarkup kunnen tussen releases veranderen.
Probleemoplossing
- Mijn thema-override wordt genegeerd. Controleer of de bestandsnaam exact overeenkomt (
single-as24ci_car.php,archive-as24ci_car.php) en of deze in de root van het actieve thema staat. Wis eventuele object-/paginacaches. - De detailpagina toont de klassieke lay-out (of vice versa). De detail-lay-out wordt geselecteerd in de designinstellingen van de plugin in de beheerinterface. Wijzig dit daar in plaats van in het thema.
- De vergelijkingspagina toont niets of een 404-fout. Controleer of de vergelijkingspagina nog bestaat, de
[as24ci_compare]-shortcode bevat en is gepubliceerd. Controleer of de vergelijkingsfunctie is ingeschakeld in de beheerinterface van de plugin. - Front-end script of stijl ontbreekt op een aangepaste wrapper-pagina. De asset-loader van de plugin reageert op post type, archief en shortcode-detectie. Gebruik de officiële shortcodes binnen uw wrapper, zodat de bijbehorende assets automatisch in de wachtrij worden geplaatst.
- Controleer het gedrag in de huidige plugin-versie voordat u een aangepaste integratie publiceert. Templatepaden en markup kunnen tussen releases veranderen.