DIY WordPress Theme Framework Deel 1 Bepaal uw behoeften

Een van de beste dingen aan mijn opleiding aan de universiteit van Scranton was de terugkerende les die we hebben geleerd hergebruik. Hergebruik is om vele redenen ongelooflijk belangrijk in programmeren: eenvoudiger testen, tijd besparen, de mogelijkheid om je te richten op meer geavanceerde dingen, enz. Toen ik afstudeerde en de wondere wereld van fulltime freelancen betrad, besloot ik of ik het zou blijven doen. WordPress werk, ik zou die hergebruiklessen in mijn dagelijks leven moeten toepassen. Nummer één op mijn lijst was een eenvoudig WordPress-themakader.

Het eerste artikel in deze serie zal een beetje anders zijn dan andere op deze site. In dit artikel wil ik u een deel van de les vertellen die ik heb geleerd over hergebruik en het definiëren van uw behoeften. In het volgende artikel zal ik mijn kader aan u verstrekken, maar het is een feit dat iedereen anders codeert en wat ik aanlever, misschien niet het beste bij u past!


Enkele principes van hergebruik om in gedachten te houden

Iedereen met formeel onderwijs in Computer Science of Software Engineering kan bevestigen dat er ontelbare theorieën, bibliotheken en klassen (programmeerlessen, geen schoolklassen) zijn die zich toeleggen op enkele zeer geavanceerde vormen van hergebruik en generieke programmering. Hoewel ik denk dat die overkill zijn voor een themakader, zijn er enkele principes die ik probeerde te volgen bij het maken van de mijne:

"Testen zorgt ervoor dat uw code werkt voordat u deze 5, 10 of 20 keer implementeert."

  • Ontwerp uw code: Ik weet dat wanneer het over WordPress gaat, ontwerp meestal het front-end ontwerp impliceert, maar het is net zo belangrijk om de code te ontwerpen. Leg uit wat je functies, klassen en pagina's zullen zijn voordat je ze gaat coderen.
  • Generalize indien mogelijk: Mogelijk is het belangrijkste principe om te herkennen wanneer u codefragmenten opnieuw gebruikt en deze in functies te generaliseren. Dit maakt het beheren en updaten van uw code veel, veel gemakkelijker.
  • Documenteer en test grondig: Dit moet u doen met alle code, maar vooral met code die u van plan bent om regelmatig te hergebruiken. Documenteren helpt je herinneren wat je dacht 6 maanden of een jaar verder. Testen zorgt ervoor dat uw code werkt voordat u deze 5, 10 of 20 keer implementeert.

Bepaal uw behoeften

Nu we enkele dingen hebben uiteengezet om in gedachten te houden, moeten we definiëren wat we willen dat ons raamwerk tot stand brengt. Onthoud dat ieder van ons zijn eigen behoeften heeft, en terwijl ik over de mijne praat, kan de jouwe anders zijn. In het begin waren mijn behoeften vrij eenvoudig: ik wilde een eenvoudig raamwerk dat mijn eerste werk voor mij deed.

Bij het maken van WordPress-thema's voor mijn klanten, merkte ik dat mijn proces hetzelfde was: kopieer K2 (het standaardthema op dat moment), verwijder de dingen die ik niet wilde gebruiken, vervang deze door mijn code. Veel van mijn code was vergelijkbaar: dezelfde CSS-reset, dezelfde CSS-structuur, dezelfde stijlkop, navigatie, enzovoort. Na een tijdje vond ik het eenvoudiger om het thema van mijn laatste klant te kopiëren en daarvan af te bouwen. Op dat moment besloot ik om mijn eigen raamwerk te bouwen.

"We moeten definiëren wat we willen dat ons raamwerk volbrengt"

Toen dat besloten was, moest ik mijn behoeften definiëren: wat deed ik steeds opnieuw en wat kon ik generaliseren. Mijn lijst met vereisten was als zodanig:

  • Insteekbare CSS: Er zijn verschillende delen van mijn CSS die zelden veranderen. Dit omvat WordPress-klassendefinities, mijn CSS-reset, enkele algemene klassen die ik gebruik (.hide, .left, .right, .clear, enz.) En (meestal) mijn IE-correcties. Als ik dat allemaal weg zou kunnen abstraheren, hoef ik alleen maar een CSS-bestand voor de site te dumpen (master.css genoemd naar het eenvoudige CSS-framework van Dan Cederholm) en ik weet dat al het andere goed zou werken.
  • Constanten voor de thema-URL en afbeeldingpaden: Dit zijn 2 variabelen die ik nodig heb bij elk thema. Als ik ze gemakkelijk ergens zou kunnen definiëren, hoef ik me geen zorgen te maken over het vervangen van de URL's voor elke site die ik maak.
  • Gemeenschappelijke WordPress-functionaliteit: Dit zijn de menu's, zijbalkdefinities en alles wat ik maar kan bedenken dat ik steeds opnieuw zou typen.
  • Algemeen gedefinieerde sjabloonpagina's: De gemeenschappelijke themapagina's (koptekst, voettekst, index) met voldoende informatie om ze bruikbaar te maken, maar niet zozeer over hen dat ik het thema echt zou moeten veranderen telkens als ik een nieuw thema zou ontwikkelen.
  • Gemeenschappelijke mappen: Ik heb altijd een afbeeldingenmap, css-map en css / img-map. Ik moest deze ook opnemen.
  • lichtgewicht: Het moet lichtgewicht zijn. Ik wil niet door pagina's en pagina's van de code ziften om te vinden wat ik wil. Mijn idee is echter dat WordPress zelf een complex raamwerk is; waarom een ​​tweede complex raamwerk bouwen bovenaan?

Ik wilde ook een functie bouwen voor de functies van verschillende pagina's, zoals het bericht 'page not found' en de paginanavigatie van posts. Dit gaat terug op de mentaliteit dat een enkele functie me zal helpen om sneller functies van meerdere pagina's te wijzigen.


Zie wat er al is daarbuiten

Het mooie van open source software is dat als je iets nodig hebt, het waarschijnlijk al is gedaan. Hetzelfde gaat van Frameworks. Er zijn tientallen raamwerken die er zijn, dus voordat je er zelf een gaat ontwikkelen, is het zeker de moeite waard om uit te zoeken wat er al is. Het doel is om tijd te besparen, toch? Geen betere manier om tijd te besparen dan helemaal niet te hoeven ontwikkelen!


Thematisch door ThemeShaper is een zeer populair raamwerk

Om je te helpen, heb ik een korte lijst met raamwerken samengesteld waar ik op zijn minst naar heb gekeken (hoewel de meesten van hen die ik heb gebruikt):

  • thematisch
  • Scriptie
  • Carrington
  • Genesis
  • Atahualpa
  • Van de WordPress Codex

Bij het verkennen van deze kaders moet u rekening houden met uw vereisten. Test deze goed: downloaden, installeren, inschakelen. Probeer vervolgens een kindthema te maken en met de instellingen te spelen. Zie wat je vindt. Maak dan uw beslissing.

Voor mij voelde ik dat degenen die ik probeerde te complex en niet licht van gewicht waren. Ze zijn geweldig voor mensen die snel een thema nodig hebben, maar voor zover het gaat om maatwerk, moest ik een heel nieuw systeem leren om thema's te maken. Zoals ik eerder al zei: ik ken het complexe framework / API van WordPress al. Ik zou die kennis moeten vervangen door het framework / de API van een ander thema. Ik besloot om mijn eigen te bouwen, die nog steeds de functies van WordPress zou gebruiken en niet zou vervangen.


Conclusie

Ik weet zeker dat je aan het begin van dit artikel kon raden dat de onvermijdelijke conclusie zou zijn dat we ons eigen raamwerk uitbouwen. We hebben onze principes en vereisten en we hebben ons onderzoek gedaan. We zijn klaar om een ​​raamwerk te bouwen, wat we de volgende keer zullen doen!

Het laatste wat ik je uitnodig om te doen, is de betekenis van wat ik hier heb gezegd: wat zijn je principes en vereisten. Gebruik je een van de frameworks die ik hier heb genoemd, of heb je je eigen framework al ontwikkeld? Laat het ons weten!

In de volgende sessie in deze serie zullen we deze principes toepassen op de eerste dag van ons nieuwe framework!