Themakaders kunnen extreem krachtig zijn. Voor niet-technische WordPress-gebruikers maken ze het mogelijk om een unieke site te maken die eruit ziet alsof het een op maat gemaakt thema is, en voor WordPress-ontwikkelaars kunnen ze je helpen het DRY-principe (Do not Repeat Yourself) toe te passen en je de mogelijkheid bieden om bouw aangepaste sites snel.
Als je al een tijdje een raamwerk van een derde partij gebruikt en gefrustreerd bent geraakt door de opgeblazen code of gebrek aan flexibiliteit, of je wilt gewoon volledige controle over je code hebben, dan is het bouwen van je eigen themakader de beste aanpak.
In deze serie leert u hoe u uw eigen WordPress-themaraamwerk kunt maken waarmee u sites voor uzelf of uw klanten kunt bouwen of zelfs kunt vrijgeven voor andere gebruikers. Je gaat door de stappen die nodig zijn om het ouderthema te maken dat de basis vormt van je raamwerk, extra functies toevoegt, haken en meer. Je leert ook hoe je deze kunt gebruiken in je kindthema's en plug-ins en hoe je je code openbaar kunt maken.
Maar voordat u begint, moet u weten hoe themakaders werken en wat hen anders maakt, vormen een standaard ouderthema.
Ik heb tijd besteed aan het ontwikkelen van twee themakaders voor gebruik op twee categorieën van klantensites, deze in de loop van de tijd te ontwikkelen en te verbeteren, en ik heb ook met een aantal van de themakaders van derden gewerkt. In mijn ervaring heeft een themakader enkele hoofdkenmerken:
De eerste twee van de bovenstaande punten zijn het meest fundamenteel - zonder een bovenliggend thema heb je geen themakader. En een ouderthema zonder die haken en functies is slechts een elementair ouderthema, niet echt een raamwerk.
Dus dat zijn de themakaders, maar hoe werken ze? Laten we de elementen van een themakader bekijken:
Het hoofdonderdeel van een themakader is het hoofdthema. Dit kan op twee manieren worden ontworpen:
Omdat een van de belangrijkste kenmerken van themakaders het DRY-principe is, maakt uw moederthema waarschijnlijk gebruik van sjabloononderdelen en neemt het waar mogelijk bestanden op, wat betekent dat u dezelfde code op meerdere locaties in uw thema kunt gebruiken. Dit maakt het ook eenvoudiger om code te overschrijven in uw kindthema's, omdat u eenvoudig een vervangend sjabloononderdeel of een bestand maakt.
Ik ga het concept van ouder- en kindthema's hier niet uitleggen, zoals in deze tutorial over kindthema's wordt behandeld. Veel themakaders komen met een reeks kindthema's om ze te ondersteunen, terwijl je met anderen je eigen thema's moet ontwikkelen.
Als u uw eigen kind ontwikkelt, raad ik u aan ten minste één 'starterskind'-thema te maken om te voorkomen dat u de werkzaamheden voor het opzetten van een project herhaalt: u kunt besluiten om meerdere kindthema's te maken als basis voor verschillende soorten projecten , bijvoorbeeld kindthema's voor blogs en voor niet-blogsites.
Een themakader bevat een reeks hooks voor kindthema's en plug-ins om in te haken bij het toevoegen van aangepaste code of het veranderen van de manier waarop het thema zich gedraagt:
Het is de moeite waard enige tijd te nemen om te overwegen welke hooks u in een vroeg stadium wilt opnemen, zodat u weet welke inhoud via een haak moet worden opgenomen en wat u rechtstreeks in uw sjabloonbestanden moet coderen. Je zult dit in het volgende deel van deze serie bekijken.
Uw framework bevat waarschijnlijk ook een reeks functies. Sommige hiervan zullen aansluiten op de actie en filterhaken die u al hebt gedefinieerd, terwijl andere functies zijn zoals sjabloontoetsen die onderliggende thema's kunnen gebruiken.
Als u aangepaste functies hebt die u op een aantal client-sites gebruikt, is het de moeite waard ze aan uw framework toe te voegen. U hoeft niet al uw functies te activeren: u kunt een functie uit het bovenliggende thema activeren met een add_action ()
functie op de site van uw kind.
Thema-optieschermen zijn een nuttige aanvulling op elk complex thema, maar zijn vooral handig voor themakaders die zijn ontworpen voor niet-technische gebruikers. De hoofdthema-kaders bevatten allemaal meerdere schermen met thema-opties in hun eigen beheerdersgedeelte, met opties zoals het in- en uitschakelen van functies, het aanpassen van de lay-out, het toevoegen van inhoud en het wijzigen van ontwerpelementen zoals kleuren, achtergrondafbeeldingen, lettertypen en headerafbeeldingen..
U kunt ervoor kiezen om de thema-aanpasser voor veel van uw opties te gebruiken, wat het voordeel heeft dat uw gebruikers hun wijzigingen kunnen zien terwijl ze ze maken. Ik heb deze benadering gekozen voor het Edupress-themakader, dat ik met Mark Wilkinson ontwikkelde voor schoolwebsites.
Of u nu kiest om een reeks widgetgebieden toe te voegen, is afhankelijk van de doelgroep voor uw framework: als u of een klein team van ontwikkelaars met het thema werkt, voegt u mogelijk geen widgetgebieden toe boven de standaardzijbalk en voettekst. gebieden.
Maar als je framework door niet-technische gebruikers wordt gebruikt, kun je ze veel meer flexibiliteit geven door meerdere widgetgebieden op verschillende locaties in je thema te registreren. Naast de normale zijbalk en voettekst, kunt u widgetgebieden ook in de koptekst registreren, vóór en / of achter de inhoud en onder het voettekstgebied..
Het themakader dat ik gebruik voor mijn client-sites bevat vier widgetgebieden in de voettekst: de themacontrole's van deze zijn gevuld en voegen CSS-klassen hieraan toe, zodat de widgetgebieden elk de juiste breedte van de pagina innemen.
Uw widgetgebieden kunnen rechtstreeks in uw sjabloonbestanden worden gecodeerd, of u kunt beslissen (zoals ik doe) om ze toe te voegen via actiehaken op de relevante plaatsen op uw site. Dit betekent dat ze kunnen worden opgeheven in kindthema's, hetzij door alternatieve widgetgebieden of door aangepaste code.
Als een bepaald script waarschijnlijk wordt gebruikt door een aantal sites die op uw framework zijn gebouwd, of als uw gebruikers niet-technisch zijn en u extra opties wilt bieden, kunt u besluiten bepaalde scripts in uw framework op te nemen, zoals een schuifregelaar of lightbox-script. Dit kan gebruikers redden die extra plug-ins moeten installeren, maar heeft het nadeel van code-bloat als deze scripts niet nodig zijn.
Nogmaals, dit is afhankelijk van uw doelgroep en de verwachte behoeften: als u alleen met het framework werkt, raad ik aan plug-ins met deze scripts te ontwikkelen (of te identificeren) en deze te gebruiken wanneer u dit wilt.
Als u scripts opneemt, is het de moeite waard om een activerings- en deactiveringsoptie op te nemen in uw themakeuzescherm.
Als uw framework nu en in de toekomst nuttig zal zijn voor een reeks sites, wilt u dat het kan worden uitgebreid. Het hoofdthema dat de kern van het framework vormt, is slechts het hart van een ecosysteem dat u en de gebruikers van uw thema gebruiken om extra opties en macht toe te voegen aan hun sites. Dit omvat:
Het kan ook documentatie bevatten voor andere ontwikkelaars die willen werken met uw raamwerk: de meeste belangrijke themakaders bevatten uitgebreide documentatie die ontwikkelaars kunnen gebruiken om hun eigen sites aan te passen aan het kader of om kindthema's of plug-ins voor andere gebruikers van het framework te maken. raamwerk voor toegang.
Themakaders zijn een krachtig hulpmiddel in het arsenaal van de ontwikkelaar van WordPress. Zoals we hebben gezien, zijn ze van vitaal belang voor duizenden niet-technische site-eigenaren die ze gebruiken om aangepaste WordPress-sites te maken. Maar ze zijn ook een geweldige tool voor elke ontwikkelaar die meerdere sites gaat maken, voor persoonlijk gebruik of voor klanten.
Themakaders hebben een aantal kenmerken die hen die kracht geven: ze zijn uitbreidbaar en flexibel en maken het voor u of uw gebruikers gemakkelijk om aangepaste sites te maken met behulp van kindthema's en toegang te krijgen tot de functies en haken van uw kader.
Na te hebben bekeken hoe themakaders werken, identificeert u in het volgende deel van deze serie wat uw kader moet doen en voor wie het moet werken, wat u zal helpen beslissen over de meest geschikte ontwikkelingsbenadering.