Of je nu een gratis, betaald of child thema hebt. Allemaal komen ze met een functions.php bestand. In dit bestand zitten, je raad het al, functies om:
- CSS bestanden in te laden
- De admin bar te verbergen aan de voorkant
- Eigen headers in te laden
- De titel van een pagina aan te passen
De inhoud van dit bestand verschilt per thema en bestaat soms uit 3 functies en soms uit wel meer dan 20. Met het functions.php bestand krijg je als ontwikkelaar de mogelijkheid om op gemakkelijke manier wijzigingen door te voeren. Je kan door middel van add_filter() of add_action() eigen functies koppelen op reeds bestaande functies zodat die op het juiste moment worden uitgevoerd.
Om het functions.php bestand netjes te houden kan je onderstaande richtlijnen volgen om orde aan te brengen.
Richtlijn 1: Een thema pas je niet aan, daar zijn child themes voor
Heb je een thema gedownload, gratis of betaald, dan pas je dit nooit aan. WordPress heeft hiervoor het child theme systeem geïntroduceerd. Op deze manier worden wijzigingen die jij hebt doorgevoerd niet verwijderd tijdens het updaten van het thema.
Het thema dat je gedownload hebt wordt ook wel het parent thema genoemd. Natuurlijk moet je af en toe wel je child theme bijwerken op basis van het parent thema als er bijvoorbeeld wijzigingen doorgevoerd zijn in templates. Een child theme wordt over een parent theme gelegd en is leidend.
Richtlijn 2: Gebruik dezelfde naamgeving in je functie namen
Zorg ervoor dat die namen consistent zijn.
Voorkeur van WordPress:
function add_page_title() { // PHP code }
Andere manier die minder duidelijk is:
function addpagetitle() { // PHP code }
Manier die vaak voorkomt op forums, wel uniek maar onduidelijk, zegt niet zoveel:
function ws32048923_addpagetitle() { // PHP code }
Mijn schrijfwijze van functienamen met unieke opbouw, geeft aan dat het een functie voor child theme is:
function child_add_page_title() { // hier code }
Natuurlijk is een duidelijke functienaam ook heel belangrijk. Zorg ervoor dat je aan de functienaam kan afleiden wat de functie doet. Een functie die ws_doing_things() heet zegt natuurlijk niet zoveel.
Richtlijn 3: Schrijf in het Engels
Toen ik jaren geleden voor het eerst leerde programmeren schreef ik variabelen en commentaar in het Nederlands. Na een paar jaar ben ik overgestapt op Engels omdat dit de voertaal is als het op programmeren aankomt. Schrijf jouw eigen code daarom ook in het Engels inclusief de documentatie. Je voorkomt hiermee dat je functions.php bestand bestaat uit Engelse en Nederlandse documentatie en variabelen.
Richtlijn 4: Gebruik dezelfde structuur
Voor een gedeelte zal je functies schrijven die je koppelt aan bestaande functies via add_filter() of add_actions(). Of je boven of onder je functie de de koppeling legt maakt niet uit. WordPress heeft hier geen voorkeur voor. Zorg er zelf voor dat je overal dezelfde structuur aanhoud. Mijn voorkeur gaat uit om het onder de functie te plaatsen.
Hieronder zie je een voorbeeld van een functie die bestaat uit documentatie, gevolgd door de functie met code en de regel code die de functie koppelt aan de bestaande WordPress functie wp().
/** * Hide the black top toolbar for all users expect the administrators. */ function child_remove_admin_bar() { if(!is_super_admin()) { add_filter( 'show_admin_bar', '__return_false' ); } } add_action('wp', 'child_remove_admin_bar');
Richtlijn 5: Groepeer dezelfde functies bij elkaar
Heb je meerdere functies die bijna hetzelfde doen? Plaats ze dan bij elkaar. Zo kan je ze gemakkelijk terugvinden en hoef je niet het hele functions.php bestand door te scrollen.
Richtlijn 6: Heb je veel functies verdeel ze over PHP bestanden
Heb je veel functies dan kan het interessant zijn om deze te verplaatsen naar losse PHP bestanden. In je (child) theme maak je dan een map “includes” aan en daar plaats je dan deze bestanden in. De map hoeft niet verplicht “includes” te heten maar is wel een naam die je vaak tegenkomt bij thema’s.
Een nette manier is dan om onderaan het functions.php bestand deze bestanden in te laden. Vermeld met documentatie erbij welke functies er in dit bestand zitten. In onderstaande functie wordt get_template_directory() gebruikt om het volledige pad naar het thema op te halen. Zo hoef je niet met $_SERVER[‘DOCUMENT_ROOT’] te werken.
/** * Load BuddyPress specific functions. */ require get_template_directory() . '/includes/buddypress.php';
Richtlijn 7: Gebruik een professionele editor zoals PHPStorm of Eclipse
Wil je echt snel en goed kunnen werken dan is een professionele editor echt een aanrader. Kladblok valt daar dus niet onder. Notepad++ is een gratis programma dat al meer opties biedt. Zelf gebruikte ik vroeger Dreamweaver maar sinds een aantal jaren ben ik overgestapt op het betaalde PHPStorm. Dit programma kost ongeveer 100 euro per jaar, maar maakt het wel mogelijk om van functie naar functie te springen, documentatie te genereren, PHP code te genereren, code wordt voorzien van kleuren en fouten te debuggen. Mocht je geen geld uit willen geven maar wel met iets beters dan Kladblok willen werken dan is Eclipse ook de moeite waard.
Conclusie:
We zijn bij het einde van de richtlijnen aangekomen die ik volg tijdens het ontwikkelen van een WordPress (child) thema. Ik ben benieuwd wat je ervan vind. Laat je reactie daarom onder dit bericht achter. Heb je zelf nog een goede richtlijn? Deel die dan ook door een reactie te plaatsen.