Het themakader dat u hebt gebouwd, wordt gebruikt als een hoofdthema in de sites die u ontwikkelt. Dit betekent dat u in elk geval een kindthema moet maken om een unieke site te maken met een eigen ontwerp en met extra of verschillende functies in vergelijking met het kader.
De meest voor de hand liggende manier om dit aan te pakken, is door in te duiken en sjabloonbestanden te maken in uw kindthema om die in het kader te overschrijven, maar dankzij de actie en filterhaken die u aan uw framework hebt toegevoegd, is dit niet altijd de beste nadering.
In dit artikel zal ik enkele technieken beschrijven die je in je kindthema's kunt gebruiken om optimaal gebruik te maken van je raamwerk en je workflow te improviseren.
De onderwerpen die ik zal behandelen zijn als volgt:
Het hoofddoel van het ontwikkelen van je themakader is om het DRY-principe (Do not Repeat Yourself) te gebruiken, en dat geldt ook voor je kindthema's.
Het kan je efficiënter maken als je een of meer 'starters' kindthema's maakt voor gebruik met je framework, die de kerncode bevatten die je nodig hebt om aan de slag te gaan met nieuwe projecten..
Wanneer u beslist hoe u dit moet doen, overweeg dan de manier waarop u werkt en de sites die u bouwt:
Als je met een van deze vragen 'ja' hebt beantwoord, kan het je tijd besparen om een of meer thema's voor het starterskind te ontwikkelen. U kunt een reeks kindthema's maken met de basiscode die u herhaalt in alle projecten die deze gebruiken en vervolgens hoeft u die code niet te herschrijven (of deze te maken) voor elk nieuw project.
Opmerking over voorbehoud: als u een code toevoegt aan elk nieuw project, wilt u dit misschien toevoegen aan uw kader in plaats van aan kindthema's, misschien door een haak te gebruiken, zodat u deze kunt overschrijven als er in de toekomst een andere behoefte ontstaat.
Zelfs als je 'nee' hebt geantwoord op de bovenstaande vragen, is het de moeite waard om een heel basistartsthema te maken met een leeg stylesheet- en functiesbestand en de instructies toe te voegen die WordPress nodig heeft om toegang te krijgen tot het hoofdthema van jouw framework in de stylesheet:
/ * Theme Name: My Theme Framework Child Theme URI: Beschrijving: Starter Child Theme Auteur: Rachel McCollin Auteur URI: http://rachelmccollin.co.uk Template: wptutsplus-theme-framework-part6 Versie: 1.0.0 Labels: tekst Domein: tutsplus * / @import url ("... /wptutsplus-theme-framework-part6/style.css");
De vereiste velden hierboven zijn Theme Name
en Sjabloon
, de rest is optioneel. Zorg ervoor dat voor de Sjabloon
, u gebruikt de directory van het framework-thema, niet de naam ervan. Het is handig om ook de andere velden als relevant voor uw thema in te vullen.
De @importeren
declaratie is ook belangrijk als u de stylesheet van het framework wilt laden. Zolang u dit boven een andere CSS plaatst, wordt de stylesheet van het bovenliggende thema geladen vóór alle stijlen in de stylesheet van het onderliggende thema. Dit betekent dat u de stijl in uw kader in het onderliggende thema kunt toevoegen en negeren, indien nodig.
Misschien wilt u ook een starter maken functions.php
bestand met de functies die u het vaakst gebruikt in uw kindthema's. U kunt er vervolgens voor kiezen om deze te verwijderen en / of toe te voegen voor specifieke projecten.
Naast het toevoegen van styling aan uw kindthema, wilt u waarschijnlijk ook de code die door het framework wordt uitgevoerd, wijzigen. De meest lichtgewicht manier om dit te doen is via filterhaken, dus het is het waard om deze eerst te onderzoeken om te bepalen of je een van deze haken kunt gebruiken.
Het maken van een functie die u vervolgens aan een filterhaak koppelt, is veel efficiënter dan het maken van een geheel nieuw sjabloonbestand voor de nieuwe code; Als je dit echter herhaaldelijk met dezelfde filterhaak doet, kun je overwegen om die filterhaak te veranderen in een actiehaak en een nieuwe functie te schrijven voor elk project dat je activeert via die actiehaak..
Om efficiënter te zijn, wilt u misschien een reeks relevante functies maken die u in het functiedossier van verschillende startthema's plaatst, of zelfs een plug-in maken met uw functie die u activeert wanneer dat nodig is. Ik zal later in deze serie meer in detail ingaan op plug-ins.
Ik heb het proces van het maken van filterhaken in een eerder deel van deze serie behandeld, maar om samen te vatten, voeg je een functie toe aan een filter met behulp van de add_filter ()
functie. Om bijvoorbeeld de link en de naam in de colofon van mijn site te wijzigen, maak ik als volgt twee functies:
function wptp_amend_colophon_name () $ name = 'Rachel McCollin'; return $ naam; add_filter ('wptp_colophon_name', 'wptp_amend_colophon_name'); functie wptp_amend_colophon_link () $ link = 'http://rachelmccollin.co.uk'; return $ link; add_filter ('wptp_colophon_link', 'wptp_amend_colophon_link');
Deze koppelen twee filters aan mijn themakader: wptp_colophon_name
en wptp_colophon_link
, en verander wat wordt geproduceerd door elk van hen.
Je themakader heeft ook actiehaken die je kunt gebruiken om inhoud op verschillende plaatsen in je sites in te voegen.
Als je hebt gewerkt aan de codebestanden voor het framework dat is meegeleverd met deze tutorialserie, heb je zeven actiehaken om mee te werken:
Stel dat u bijvoorbeeld een call-to-action-knop aan de zijbalk wilt toevoegen. Je zou een nieuwe kunnen maken sidebar.php
bestand, maar het zou efficiënter zijn om alleen het wptp_sidebar
haak in plaats daarvan.
Hiertoe maakt u een functions.php
bestand in uw kindthema en voeg het volgende toe:
functie wptp_cta () ?>E-mail ons op [email protected]
De
wptp_cta ()
functie maakt de opmaak voor de call-to-action en deadd_action ()
functie ontsteekt het via dewptp_sidebar
haak met een prioriteit van1
zodat deze wordt weergegeven vóór andere inhoud die via die haak wordt geactiveerd.Er is veel andere inhoud die je zou kunnen toevoegen met je actiehaken, zoals het delen van knoppen boven of onder de inhoud, extra inhoud in het voettekstje, een zoekvak in de kop en nog veel meer.
Misschien wilt u gewoon bepaalde inhoud toevoegen aan specifieke paginatypen, zoals afzonderlijke blogposts. In dat geval zou de meest voor de hand liggende plaats zijn om een nieuwe blog te maken.
single.php
sjabloon. Maar je kunt nog steeds je actiehaken gebruiken met de toevoeging van een voorwaardelijke tag:functie wptp_after_single_posts () if (is_singular ('post')) ?>Genoten van dit? Probeer het lezen meer!
Hiermee wordt een nieuwe query gemaakt (met
WP_Query
) die een lijst met de meest recente blogberichten weergeeft, om bezoekers aan te moedigen iets anders te lezen nadat ze een blogpost hebben voltooid. Deis_singular ('post')
Voorwaardelijke tag zorgt ervoor dat dit alleen wordt uitgevoerd voor afzonderlijke berichten en door deze aan dewptp_after_content
hook zal je het weergeven na de inhoud van de hoofdpost.Nieuwe sjabloonbestanden maken
Soms kunt u niet doen wat u wilt met behulp van de filter- of actiehaken in uw kader, in welk geval u nieuwe sjabloonbestanden in uw kindthema's moet maken.
Dit kunnen dezelfde sjabloonbestanden zijn als die zijn opgeslagen in uw kader, in welk geval de bestanden in het onderliggende thema deze zullen overschrijven. Of het kunnen nieuwe sjabloonbestanden zijn, bijvoorbeeld voor een nieuwe categorie, taxonomie of een berichttype.
Als u sjabloondocumenten maakt in uw kindthema's, maakt het dingen gemakkelijker als u de sjabloonbestanden in uw kader als uitgangspunt gebruikt. De stappen die ik volg zijn:
- Identificeer het sjabloonbestand dat u moet maken met verwijzing naar de WordPress-sjabloonhiërarchie
- Maak een leeg bestand met de juiste naam in uw kindthema
- Identificeer het bestand in uw raamwerk dat zich het dichtst bij het nieuwe bestand bevindt (opnieuw met verwijzing naar de sjabloonhiërarchie)
- Kopieer de inhoud ervan naar uw nieuwe bestand
- Breng indien nodig wijzigingen aan in het nieuwe bestand.
Hierdoor bespaart u het werk van het dupliceren van elke code die gebruikelijk is tussen uw nieuwe bestand en de bestaande bestanden in uw framework, zoals de aanroepen van bestanden.
Wanneer in plaats daarvan een plug-in gebruiken
Een andere optie die u hebt bij het maken van sites op basis van uw framework, is om plug-ins te gebruiken in combinatie met uw kindthema's. Een plug-in zal een kindthema niet volledig vervangen, maar het kan wel handig zijn in de volgende omstandigheden:
Ik zal de ontwikkeling van plug-ins voor uw framework in het volgende deel van deze serie behandelen.
Uw themaraamwerk is slechts het begin van een bibliotheek met codes en bestanden die u zult maken om de door u ontwikkelde sites te ondersteunen. Elke site die u maakt, moet worden uitgevoerd met een kindthema, waarbij uw framethema als bovenliggend thema wordt gebruikt.
Zoals we hebben gezien, zullen uw kindthema's hun eigen stijl en functionaliteit toevoegen, en zij kunnen dit doen door in de actie en filterhaken in uw raamwerk te haken, of door het creëren van nieuwe sjabloonbestanden. Het is altijd een goed idee om de oplossing te gebruiken die de minste code nodig heeft, want dat maakt uw site sneller en uw leven gemakkelijker!