DROGE WordPress Theme Development

Wanneer u een WordPress-thema aan het bouwen bent, is het de moeite waard enige tijd te nemen om vast te stellen waar u herhaling van code kunt voorkomen. Dit geeft je een aantal voordelen:

  • U hoeft de code slechts één keer te schrijven, waardoor u efficiënter wordt.
  • Als u de code in de toekomst gaat bewerken, hoeft u het maar één keer te doen.
  • Iedereen die met uw thema werkt, raakt niet in de war door meerdere iteraties van hetzelfde stuk code.
  • Uw thema heeft minder code, wat de prestaties ten goede kan komen.

In mijn ervaring is de belangrijkste van deze punten de tweede: toen ik thema's moest bewerken om welke reden dan ook, wordt de taak veel eenvoudiger gemaakt als elk stuk code daar maar één keer voorkomt.

In deze zelfstudie laat ik je enkele manieren zien waarop je het Do not Repeat Yourself- of DRY-principe kunt toepassen bij je thema-ontwikkeling, waardoor je efficiënter en minder gestrest wordt in het proces. 

Wat is er niet leuk om te doen?

1. Kaders en Starter-thema's gebruiken

Het gebruik van een raamwerk, of een derde partij die je zelf ontwikkelt, betekent dat veel van de code die je nodig hebt er al voor je zal zijn als je begint, en dat je niet zult merken dat je dezelfde code opnieuw schrijft en opnieuw (of zelfs helemaal niet).

Hoeveel code u in uw raamwerk nodig heeft, is aan u - misschien geeft u er de voorkeur aan om een ​​barebones-raamwerk te gebruiken dat u vervolgens toevoegt, of een uitgebreidere versie waaruit u de functionaliteit voor uw project selecteert.

Naast frameworks zijn er steeds meer startthema's beschikbaar om uw codering te versnellen. Momenteel wordt het thema _s het meest gebruikt, waardoor je de kale botten hebt die je nodig hebt om snel WordPress-thema's te maken.

Als alternatief kunt u er de voorkeur aan geven om uw eigen startthema's te maken, met inbegrip van de basiscode die u keer op keer gebruikt in projecten. U kunt er één maken die u toevoegt, of een aantal verschillende versies voor verschillende soorten projecten..

2. Sjabloononderdelen gebruiken

U krijgt het meeste waar voor uw geld in termen van DROGE thema's als u gebruikmaakt van sjabloondelen. De meest voor de hand liggende hiervan zijn de header-, footer- en zijbalkbestanden, maar u kunt ook gebruik maken van loop-bestanden en andere sjabloononderdelen om uw code efficiënter te maken.

De koptekst, zijbalk en voettekst

Hopelijk hoef je me dit niet te vertellen. Je moet ALTIJD afzonderlijke sjabloonbestanden gebruiken voor je header (header.php), zijbalk (sidebar.php) en voettekst (footer.php). Vervolgens roept u deze in elk van uw sjabloonbestanden met behulp van deze sjabloon tags:

  • get_header ()
  • get_sidebar ()
  • get_footer ()

Maar je had me niet nodig om je dat te vertellen, dus laten we verder gaan met meer geavanceerd gebruik van sjabloononderdelen.

Meerdere koppen, zijbalken of voetteksten

Af en toe wilt u misschien een andere koptekst, zijbalk of voettekst gebruiken voor verschillende delen van uw site. U kunt dit eenvoudig doen door meerdere bestanden te maken.

Stel dat u bijvoorbeeld een andere zijbalk op uw archiefpagina's wilt gebruiken. U zou een bestand voor deze sidebar maken genaamd sidebar-archive.php. In uw archive.php sjabloonbestand, zou u de standaard vervangen get_sidebar () tag met get_sidebar ('archive').

Dit geeft u de flexibiliteit om een ​​extra zijbalk te hebben, die u vervolgens kunt gebruiken in meerdere sjabloonbestanden. U zou het bijvoorbeeld willen gebruiken in de archiefsjablonen voor specifieke berichttypen. Dus als je een berichttype hebt gebeld knop, je zou een archiefsjabloon maken waarvoor het wordt gebeld archief-button.php, en in dat zou je de get_sidebar ('archive') label.

Er zijn enkele nadelen aan deze aanpak: als je sidebar.php en sidebar-archive.php bestanden hebben veel herhalende code, je thema volgt het DRY-principe niet genoeg op de voet. Als dit het geval is, kunt u ervoor kiezen om voorwaardelijke tags te gebruiken, die ik later in deze zelfstudie zal bespreken.

Andere sjabloononderdelen

Naast sjabloondelen voor de koptekst, voettekst en zijbalk, kunt u ook andere sjabloondelen maken. Vervolgens roept u deze sjabloononderdelen op met behulp van de get_template_part () label.

Het meest gebruikelijke gebruik hiervan is voor de lus. De lus is een stuk code dat vaak in meerdere sjablonen wordt herhaald, dus is het zinvol om het uit elk van die sjablonen te halen en het in een eigen bestand te plaatsen.

Hiertoe maakt u een bestand met de naam loop.php met de code voor je lus en dan noem je die met get_template_part ('loop'). Hiermee wordt effectief alle code uit uw lusbestand naar uw sjabloon getrokken.

Je kunt dit met meerdere lussen verder gaan. Als u bijvoorbeeld een iets andere lus had voor archieven, zou u een bestand met de naam. Maken lus-archive.php en noem het met get_template_part ('loop', 'archive'). Eenvoudig!

3. Gebruik van voorwaardelijke tags

Soms is het efficiënter om voorwaardelijke tags te gebruiken in plaats van afzonderlijke sjabloonbestanden. WordPress wordt geleverd met een set voorwaardelijke tags die u kunt gebruiken om te controleren welk inhoudstype op een bepaald moment wordt bekeken of welke paginasjabloon wordt gebruikt. U kunt ze dus gebruiken om te controleren of een specifieke sjabloon wordt gebruikt en vervolgens een code toevoegen als dit het geval is. Dit bespaart u het maken van een extra sjabloonbestand als uw sjabloonbestanden veel gedupliceerde code bevatten.

Ik zal dit illustreren met een voorbeeld. Laten we zeggen dat je een zijbalk hebt met een widgetgebied geregistreerd. Op de afzonderlijke pagina's voor een bepaald berichttype wilt u een tweede widgetgebied toevoegen. U kunt dit doen als u bijvoorbeeld andere berichten van dat berichttype in een widget wilt opnemen.

U kunt een afzonderlijk sidebar-bestand maken met de naam sidebar-xxx.php, waar xxx is uw berichttype en bel dat dan in het sjabloonbestand voor uw berichttype. Of u kunt gewoon een zijbalkbestand met een voorwaardelijke tag gebruiken om het extra widgetgebied als volgt toe te voegen:

In uw sidebar.php bestand, hebt u al een widgetgebied geregistreerd, dat er ongeveer zo uitziet:

    

Hiermee wordt het zijbalk-widgetgebied weergegeven als het is gevuld met widgets.

U kunt vervolgens een tweede zijbalk toevoegen met behulp van de is_singular () voorwaardelijke tag:

if (is_singular ('xxx') && is_active_sidebar ('xxx-sidebar-widget-area')) ?>  

Hiermee wordt gecontroleerd of het widgetgebied op dezelfde manier wordt gevuld als het eerste voorbeeld, maar wordt daar een extra controle aan toegevoegd als uitspraak: is_singular ('xxx'). Hiermee wordt gecontroleerd of de site momenteel één pagina weergeeft voor de xxx berichttype. Als dat het geval is en het widgetgebied is ingevuld, wordt het weergegeven.

4. Repetitieve code in een functie veranderen

Als je code steeds opnieuw wordt herhaald op de site en het leent zich niet om in een eigen bestand te worden opgenomen, dan is een andere oplossing om het in een functie te plaatsen en vervolgens die functie te bellen waar je ook bent in je sjabloon wil dat de code verschijnt.

U kunt bijvoorbeeld een code hebben om een ​​call-to-action-vak weer te geven:

// CTA-inhoud komt hier

Herhaling van dezelfde code op meerdere plaatsen in uw thema zou een slechte gewoonte zijn, omdat het extra code zou toevoegen en het voor u erg moeilijk zou maken om de code nauwkeurig te wijzigen als u dat in de toekomst zou moeten doen. In plaats daarvan kunt u het in een functie plaatsen en vervolgens die functie op relevante plaatsen in uw thema plaatsen.

Je functie zou er als volgt uitzien:

functie wptp_cta () ?> 
// CTA-inhoud komt hier

Als u vervolgens uw call-to-action-vak op plaatsen in uw thema, zoals zijbalken of voetteksten, wilt weergeven, schrijft u de functie alleen in het relevante sjabloonbestand:

wptp_cta ();

Het grote voordeel hiervan is dat als je de call-to-action in de toekomst wilt veranderen, je de functie slechts één keer hoeft te veranderen en de verandering overal wordt weergegeven waar je het in je thema hebt genoemd.

5. Hooking Code to Action Hooks

De volgende stap in DROGE thema-ontwikkeling is om gebruik te maken van actiehaken in uw thema.

U maakt een actiehaak met behulp van de do_action () functie, en vervolgens koppelt u functies aan die haak met behulp van add_action ().

Dit geeft u veel meer flexibiliteit bij het gebruik van uw terugkerende code en biedt u de mogelijkheid om niet alleen op te geven waar in uw thema het zal verschijnen, maar onder welke omstandigheden, met behulp van een combinatie van functies en voorwaardelijke tags.

Het betekent ook dat als u kindthema's maakt met uw oorspronkelijke thema als bovenliggend thema, u functies in uw kindthema kunt koppelen aan de functie vanuit het bovenliggende thema.

Ik zal terugkeren naar mijn sidebar-voorbeeld. In plaats van het widgetgebied in mijn te coderen sidebar.php bestand, ik voeg er gewoon een actie aan toe en geef deze een unieke naam:

do_action ('wptp_sidebar');

Hiermee maak je een actiehaak in mijn thema, waaraan ik aangepaste functies kan koppelen.

In mijn functions.php bestand, haak ik de code voor de standaardzijbalk van deze actie als volgt:

function wptp_sidebar_default () if (is_active_sidebar ('sidebar-widget-area')) ?>  

Ik heb gebruikt add_action () met twee parameters: wptp_sidebar, de naam van de haak, en wptp_sidebar_default, de naam van de functie.

Dat is de standaard zijbalk die is toegevoegd aan mijn thema. Om de zijbalk toe te voegen voor mijn berichttype, voeg ik een tweede functie toe aan mijn functions.php bestand en haak het aan dezelfde actiehaak:

functie wptp_xxx_sidebar () if (is_singular ('xxx') && is_active_sidebar ('xxx-sidebar-widget-area')) ?>  

Dit omsluit mijn tweede zijbalk in een functie en vuurt vervolgens die functie op de wptp_sidebar actiehaak ook. Een paar dingen om op te merken:

  • De voorwaardelijke tag gaat in de functie en niet met de add_action functie.
  • Ik heb een prioriteit toegevoegd van 15 naar mijn tweede functie. Aangezien de standaardprioriteit (die aan mijn eerste functie is toegewezen) 10 is, betekent dit dat WordPress deze tweede functie na die eerste functie zal activeren, dus de xxx zijbalk verschijnt onder de standaardbalk.

Samenvatting

De ideeën die ik hierboven heb behandeld, zijn geen uitputtende lijst van methoden om het DRY-principe te gebruiken bij het ontwikkelen van WordPress-thema's, maar geven een inleiding tot enkele van de meest effectieve methoden die u kunt gebruiken.

Als u ervoor wilt zorgen dat uw thema's zo efficiënt mogelijk zijn, raad ik u aan de tijd te nemen om de structuur van uw thema te plannen voordat u begint met het schrijven van code. Geef aan waar code wordt gedupliceerd en welke aanpak het beste is om herhaling van code en inspanningen te voorkomen. Werk je een weg door de bovenstaande ideeën, met behulp van degene die je de meeste tijd en code zal besparen. Dit zal je helpen het thema verder te ontwikkelen in de toekomst.