Kinderthema's maken voor uw WordPress-themakader

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:

  • Startkinderthema's maken
  • Wijzigingscode via de filterhaken van het framework
  • Code toevoegen via de actiehaken van het framework
  • Het maken van sjabloonbestanden in uw kindthema
  • Wanneer in plaats daarvan een plug-in gebruiken

Starterskindenthema's maken

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:

  • Creëert u veel sites voor klanten in dezelfde sector met vergelijkbare behoeften?
  • Wilt u goedkope template-gebaseerde sites aanbieden aan kleinere klanten??
  • Zijn er specifieke sjabloonbestanden die u meestal voor de meeste van uw nieuwe projecten maakt??
  • Is er functionaliteit die u op sommige sites moet opnemen, maar niet op andere? (Ik maak bijvoorbeeld gebruik van twee thema's voor starterskinderen, één met commentaarfunctie en één zonder.)
  • Is er een stijl die u meestal voor de meeste projecten gebruikt, of kunt u voor de meeste projecten objectgerichte styling of een CSS-preprocessor gebruiken?
  • Zijn er bibliotheken of bronnen die u gebruikt voor de meeste nieuwe projecten, of voor een aanzienlijk deel daarvan?
  • Heeft u twee of drie hoofdcategorieën waar u projecten onder kunt plaatsen, waarbij elke categorie vergelijkbaar ontwikkelingswerk omvat?

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.

Wijzigingscode via filterhaken

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.

Code toevoegen via actiehaken

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:

  • voor de header
  • in de koptekst
  • vóór de inhoud
  • na de inhoud
  • in de zijbalk
  • in de voettekst
  • na het voettekst.

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 de add_action () functie ontsteekt het via de wptp_sidebar haak met een prioriteit van 1 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. De is_singular ('post') Voorwaardelijke tag zorgt ervoor dat dit alleen wordt uitgevoerd voor afzonderlijke berichten en door deze aan de wptp_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:

  1. Identificeer het sjabloonbestand dat u moet maken met verwijzing naar de WordPress-sjabloonhiërarchie
  2. Maak een leeg bestand met de juiste naam in uw kindthema
  3. Identificeer het bestand in uw raamwerk dat zich het dichtst bij het nieuwe bestand bevindt (opnieuw met verwijzing naar de sjabloonhiërarchie)
  4. Kopieer de inhoud ervan naar uw nieuwe bestand
  5. 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:

  • De functionaliteit die u wilt toevoegen, is niet afhankelijk van het thema (dat wil zeggen dat u deze wilt behouden als de site in de toekomst van thema verandert). Dit kan bijvoorbeeld het registreren van aangepaste berichttypen of taxonomieën zijn.
  • U wilt deze functionaliteit gebruiken op een aantal van de sites die u maakt, maar niet genoeg om in te gaan op een starterskinderthema of het framework zelf.

Ik zal de ontwikkeling van plug-ins voor uw framework in het volgende deel van deze serie behandelen.

Samenvatting

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!