Een beginnershandleiding voor het ontwikkelen van WordPress-thema's: bouw je eerste aangepaste thema vanaf nul.

3 minuten leestijd
2026-03-11
2026-06-03
2,556
Ik verdien commissies wanneer je via de onderstaande links winkelt, zonder dat dit extra kosten voor jou met zich meebrengt.

Waarom zou je je eigen WordPress-thema ontwikkelen? Er zijn enkele goede redenen voor dit:

Na contact te hebben gehad met een groot aantal bestaande thema's, krijgen ontwikkelaars vaak de idee om hun eigen thema's te creeren. Dit is niet alleen om een unieke visuele uitstraling te realiseren, maar ook om volledige controle over het codebeheer te hebben. De thema's die op de markt zijn, zijn meestal ontworpen om een brede range aan behoeften te bevredigen, waardoor ze te veel functies en code bevatten die je misschien niet nodig hebt. Dit kan leiden tot een trage website, beveiligingsproblemen of compatibiliteitsproblemen wanneer er updates worden uitgevoerd.

Door een thema van scratch op te bouwen, kun je zorgen voor een geoptimaliseerde, efficiënte en veilige code. Dit proces is ook een uitstekende manier om dieper in de werking van het kernsysteem van WordPress te duiken. Je leert hoe de structuur van templates werkt, hoe gegevens uit de database worden gehaald en op de pagina worden weergegeven, en hoe je deze processen kunt gebruiken.functions.phpDe functionaliteit van de file wordt uitgebreid met acties (actions) en filterhooks. Uiteindelijk krijgt u een tool dat volledig is aangepast aan de behoeften van uw project, waardoor u de onderhoud en iteraties zelf kunt beheersen.

Forbereiding van de omgeving en tools voordat je begint

Voordat je de eerste regel code schrijft, is het heel belangrijk om een efficiënte lokale ontwikkelingsomgeving op te zetten. Dit geeft je de mogelijkheid om vrij te testen en te debuggen zonder dat je de online website beïnvloedt. Je kunt gebruikmaken van ontwikkelingsomgevingen als Local by Flywheel, XAMPP of MAMP; deze bieden de mogelijkheid om Apache, MySQL en PHP in één stap te installeren. Zorg ervoor dat je de juiste PHP-versie gebruikt die overeenkomt met de vereisten van je WordPress-installatie (meestal PHP 7.4 of een latere versie).

Aanbevolen leesmateriaal WordPress-themaontwikkeling: Een gids voor beginners om van nul een custom thema te maken

De code-editor is je belangrijkste hulpmiddel. Visual Studio Code, PhpStorm of Sublime Text zijn allemaal uitstekende keuzes; ze bieden ondersteuning voor syntaxis-highlighting, automatische code-completering en debugging-mogelijkheden, waardoor je ontwikkelingswerkzaamheden aanzienlijk kunt versnellen. Daarnaast heb je ook een moderne browser (zoals Chrome of Firefox) en de daaraan verbonden ontwikkelaarsinstrumenten nodig, om HTML, CSS en JavaScript in real-time te kunnen debuggen.

UltaHost WordPress-hosting
30-daagse garantie voor het terugbetalen van het geld, onbeperkt bandbreedte- en databestand, gratis DDoS-beveiliging, en een prijsvoordeel van 50% bij een aankoop van 3 jaar.

Ten slotte hebt u een nieuwe, schone WordPress-installatie nodig. Test geen thema’s of ontwikkelingen rechtstreeks op uw belangrijkste bedrijfswebsite. Na de installatie kunt u in de backend, onder “Instellingen -> Permanente links”, een niet-standaard linkstructuur kiezen (bijvoorbeeld “Artikelnaam”). Dit helpt om vanaf het begin de juiste redirectregels te instellen.

Constructeer een basisstructuur voor themafailen

Een WordPress-thema is in feite een set van bestanden die bepalen hoe een website er uit zal zien en hoe deze functioneert. Deze bestanden bevinden zich meestal in een speciale map binnen het WordPress-installatiepad./wp-content/themes/De mappen in de map bevatten een reeks bestanden met specifieke toepassingen. Laten we beginnen met het maken van de meest basale bestanden.

Allereerst, in jouw.../wp-content/themes/Maak een nieuwe map in de map en geef deze de naam van je onderwerp, bijvoorbeeld:my-first-themeAlle thema-bestanden worden hier opgeslagen.

Vervolgens worden twee essentiële kernbestanden gecreëerd. Het eerste is een bestand met de stijlregels (stylesheet).style.cssDe header-commentaren dienen niet alleen om de stijl te definiëren, maar vormen ook de “identiteitskaart” van het thema voor WordPress. De inhoud moet als volgt zijn:

Aanbevolen leesmateriaal Praktische WordPress-themawijzing: van nul tot een professioneel website-thema bouwen

/*
Theme Name: My First Theme
Theme URI: https://example.com/my-first-theme/
Author: Your Name
Author URI: https://example.com/
Description: 一个从零开始构建的入门级 WordPress 主题。
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: my-first-theme
*/

Het tweede vereiste bestand isindex.phpHet is het standaardtemplate voor alle pagina's. Als uitgangspunt kan het dienen als de meest fundamentele PHP/HTML-structuur voor het hele website.

<!DOCTYPE html>
<html no numeric noise key 1005>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?php wp_head(); ?>
</head>
<body no numeric noise key 1002>
    <header>
        <h1>Mijn eerste thema</h1>
    </header>
    <main>
        <?php
        if ( have_posts() ) :
            while ( have_posts() ) :
                the_post();
                the_content();
            endwhile;
        endif;
        ?>
    </main>
    <footer>
        <p>© Mijn website</p>
    </footer>
    <?php wp_footer(); ?>
</body>
</html>

Op dit moment kan je thema worden herkend en activeren door WordPress, al is de functionaliteit ervan zeer beperkt.

Het begrijpen en toepassen van de hiërarchie van templates

Een van de belangrijkste aspecten van WordPress is de krachtige “template-hiërarchie”. Deze regels bepalen welke template-bestand WordPress automatisch gaat opzoeken en laden voor elke pagina van een website, zodat de inhoud wordt weergegeven. Als je deze regels begrijpt, hebt je de sleutel in hand om thema’s (templates) voor websites te ontwikkelen.

hosting.com gedeelde hosting
Hoge prestaties met AMD EPYC CPU's, NVMe SSD opslag en LiteSpeed, 24/7 deskundige interne ondersteuning, geavanceerde beveiligingsmaatregelen waaronder SSL, bescherming tegen brute kracht, malware en DDoS, besparingen tot 73%

De werkwijze kan worden vereenvoudigd als volgt: wanneer een pagina wordt opgevraagd, zoekt WordPress naar het templatebestand op basis van het type van de pagina (bijvoorbeeld een artikelpagina, een speciale pagina of een archief van categorieën) en enkele specifieke criteria (zoals de ID van het artikel of de slug van de categorie), volgens een duidelijke prioriteitslijst. Voor een individueel blogartikel zal WordPress op de volgende manier kijken:single-{post-type}-{slug}.phpsingle-{post-type}.phpsingle.phpEn ten slotte:singular.php… tot de eerste bestaande bestand wordt gevonden. Als er geen enkele bestand te vinden is, wordt er uiteindelijk teruggekeerd naar…index.php

Laten we dit in praktijk brengen en enkele belangrijke templatebestanden maken. Eerst…header.phpfooter.phpDit wordt gebruikt om de code voor de boven- en onderste delen van een pagina te modulariseren.index.phpVerplaats de code die zich bevindt in de boven- en onderste delen van het document naar deze twee aparte bestanden, en gebruik deze vervolgens op de juiste plekken.get_header()get_footer()De functies roepen ze op.

Vervolgens wordt een... (de tekst eindigt hier; de volledige zin of opvolging van de instructies is niet gegeven).page.phpGebruikt om een afzonderlijke pagina te weergeven.single.phpGebruikt om individuele artikelen te weergeven. Je kunt deze templates gebruiken om artikelen op een specifieke manier te presenteren.the_title()the_content()Je kunt template-taggen gebruiken om bepaalde inhoud te weergeven.

Aanbevolen leesmateriaal WordPress-themaontwikkeling voor beginners: bouw je eerste custom-thema vanaf nul

De themafuncties kunnen worden uitgebreid door gebruik te maken van het bestand functions.php.

Subject:functions.phpDe bestanden vormen je “tassen met tools”; ze bieden je de mogelijkheid om functies toe te voegen en het gedrag van een thema te wijzigen door PHP-code toe te voegen en ingebouwde WordPress-functies en hangouts (hooks) te gebruiken. Deze bestanden worden automatisch geladen wanneer het thema wordt initialiseerd.

Een fundamentele en belangrijke toepassing is het registreren van menu's en sidebar's (gebieden met extra functies). Bijvoorbeeld, door dit te gebruiken...register_nav_menus()Een functie die de positie van de navigatie-menubalk voor een thema bepaalt:

InterServer gedeelde hosting
Shared hosting $2.50 USD per maand, eerste maand $0.1 USD promo code tryinterserver, 461 cloud apps scripts, een klik te installeren.
function mytheme_setup() {
    register_nav_menus( array(
        'primary' => __( '主导航菜单', 'my-first-theme' ),
        'footer'  => __( '页脚菜单', 'my-first-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'mytheme_setup' );

In dezelfde mate kun je ook gebruikmaken van...register_sidebar()Een functie wordt gebruikt om een widget-gebied te creëren. Een andere belangrijke taak is om…add_theme_support()De functies zorgen ervoor dat jouw thema verschillende functies beschikt over, zoals artikelafbeeldingen, aangepaste logo's en ondersteuning voor HTML5-formulieren.

Daarnaast moet je je styleheets en scriptbestanden ook op de juiste manier laden. Vergeet nooit om ze rechtstreeks in het templatebestand te incorporeren met de `link` of `script`-taggen. De juiste manier om dit te doen is…wp_enqueue_style()wp_enqueue_script()Functies, en deze worden vervolgens geïntegreerd inwp_enqueue_scriptsOp deze haak moet dit worden gemonteerd, zodat WordPress de afhankelijkheden en de load-order (volgorde van het laden) kan beheersen.

Toepassen van stijlen en toevoegen van interactiviteit

Een thema zonder stijl is slechts een skelet. Door CSS te schrijven, kun je het visuele uiterlijk van een website bepalen, waaronder de lay-out, kleuren, fonten en het responsieve ontwerp. Het is aan te raden om je CSS-code op een modulaire manier te organiseren; je kunt bijvoorbeeld gebruikmaken van preprocesoren als Sass. De kern van het proces blijft echter steeds het definiëren van de stijlregels van de website.style.cssDe schrijving van...

Om de compatibiliteit tussen verschillende browsers en een responsief ontwerp te garanderen, moet je je CSS-startpunt zoeken in het resetten of standaardiseren van de stijlen. Vervolgens definieer je de globale stijlen en pas daarna de stijlen voor specifieke componenten. Maak optimaal gebruik van de mogelijkheden die WordPress biedt.body_class()post_class()Deze functies genereren dynamisch CSS-klassen op basis van de huidige pagina, waardoor je de stijlen precies kunt bepalen en opschrijven.

De interactiviteit is voornamelijk afhankelijk van JavaScript. Net zoals je stijlbestanden (style sheets) moet gebruiken, moet je ook JavaScript-inhoud op de juiste manier implementeren.wp_enqueue_script()Voor het veilig toevoegen van een JavaScript-bestand is het een goede praktijk om je script te registreren en te verpakken in een functie:

function mytheme_scripts() {
    wp_enqueue_style( 'mytheme-style', get_stylesheet_uri() );
    wp_enqueue_script( 'mytheme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'mytheme_scripts' );

Let op de laatste parameter.trueDit betekent dat de script wordt geladen aan de onderkant van de pagina, en dat is over het algemeen een goede praktijk. Voor scripts die afhankelijk zijn van bibliotheken zoals jQuery, moet de afhankelijkheid worden opgegeven in de array-parameter.

Samenvatting

Het bouwen van je eerste WordPress-custom theme is een stap voor stap proces dat begint met het begrijpen van waarom je dit zelf wilt doen, vervolgt met het opzetten van een omgeving, het creeren van een basisbestandsstructuur, het dieper begrijpen van de essentie van de template-hiërarchie, en uiteindelijk met het...functions.phpDeze krachtige centrale wordt gebruikt om functies uit te breiden, en uiteindelijk wordt het geheel leven en persoonlijkheid gegeven met CSS en JavaScript. Deze procedure leert je niet alleen hoe je een thema maakt, maar nog belangrijker: je begrijpt hoe WordPress werkt en de filosofie achter het scheiden van data en presentatie.

De praktijk is de beste leraar. Laat je niet afschrikken door de complexiteit in het begin; begin met het simpelste.index.phpstyle.cssBegin met activeren van je eigen thema, en voeg daarna steeds nieuwe templatebestanden en functies toe. Voeg er iedere keer maar één element toe, test het en observeer de veranderingen. De officiële WordPress-documentatie en de kerncode zijn de beste bronnen voor het leren. Zodra je je eerste thema hebt gemaakt – zelfs als het nog erg simpel is – ben je al een WordPress-developer.

Veelgestelde vragen (FAQ)

Is het nodig om vakkundig te zijn in PHP om thema's te ontwikkelen?

Het is zeker handig om vloeiend in PHP te zijn voor het ontwikkelen van complexere toepassingen, maar om te starten met het ontwikkelen van WordPress-themes hoef je geen PHP-expert te zijn. Je moet alleen de basis van de PHP-syntax beheersen, zoals variabelen, arrays, functies, conditionele bewerkingen en cycli. WordPress beschikt over een groot aantal ingebouwde functies (template tags) en een duidelijk systeem van 'hooks', waarmee je eenvoudig kunt werken. Tijdens het leren zal je automatisch je PHP-kunsten verder ontwikkelen.

Hoe wordt mijn thema gebruikt om een lijst met artikelen op de frontend te weergeven?

Het weergeven van een lijst met artikelen op de homepagina, in de categorieën of op de archievenpagina is een veel voorkomend vereiste. Je moet dit realiseren in de corresponderende templatebestanden (bijvoorbeeld…)home.phparchive.phpindex.phpIn deze context wordt de hoofdloop (main loop) van WordPress gebruikt. Meestal wordt deze loop gebruikt om de inhoud van de website te genereren en te weergeven.if ( have_posts() )while ( have_posts() )Om een artikel te doorlopen met behulp van een combinatie, wordt deze combinatie gebruikt binnen een loop.the_title()the_excerpt()the_permalink()Functies zoals `print` worden gebruikt om de titel, samenvatting en link van elke artikel af te drukken.

Hoe voeg je een persoonlijke instellingenpagina toe aan een thema?

Als je themafuncties complexer worden, is het mogelijk dat je de gebruikers enkele instellingsopties moet bieden, zoals het wijzigen van het kleurenschema of het uploaden van een logo. Hiervoor kun je de “Customizer” of de “Options Page”-API van WordPress gebruiken. De meer recente en aan te raden methode is om de “Theme Customizer” te gebruiken; deze biedt een gemakkelijke en flexibele manier om deze instellingen te beheren.functions.phpGebruikt in het Chinees (vereenvoudigd)$wp_customize->add_setting()$wp_customize->add_control()Voeg instellingen en controlelementen toe, zodat gebruikers een configuratieervaring kunnen krijgen met een realtime-previsualisatie.

Wat is de relatie tussen een subthema en een hoofdthema?

Een subthema is een krachtige functie die alle functies, stijlen en templates van een ander thema (het parentthema) erft. Het belangrijkste doel is om het parentthema te kunnen aanpassen, overschrijven of uitbreiden zonder de bestanden van het parentthema rechtstreeks te bewerken. Het is zeer snel om een subthema te creeren; je hebt alleen een bestand nodig dat de benodigde header-commentaren bevat.style.cssEn eenfunctions.phpAls WordPress een bepaald template-bestand niet kan vinden in een subtheme, zal het automatisch kijken in het parenttheme. Dit is de beste praktijk om het parenttheme te updaten zonder de aangepaste instellingen te verliezen.