Compleet handboek voor het ontwikkelen van WordPress-themes: van het begin tot de praktische toepassing

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

Het begrijpen van de basisarchitectuur van een WordPress-thema

Een WordPress-thema is in feite een verzameling bestanden die samen het uiterlijk en de functionaliteiten van een website bepalen. Er zijn twee bestanden die in elk thema aanwezig moeten zijn:style.cssindex.phpZe vormen de basis van het thema.

Op het meest fundamentele niveau werkt een WordPress-thema via het systeem van templatebestanden. Wanneer een bezoeker een pagina opvraagt, bepaalt WordPress, afhankelijk van het type van de pagina (bijvoorbeeld de startpagina, een artikelpagina of een archievenpagina), welk PHP-templatebestand moet worden geladen om de inhoud weergegeven. Dit ontwerp biedt ontwikkelaars de mogelijkheid om de weergave van verschillende paginatypen zeer flexibel te beheersen.

Overzicht van de structuur van themaposten

Een standaard WordPress-thema bevat een reeks specifieke bestanden. Naast de essentiële bestanden…style.cssindex.phpEen volledig functionerend thema bevat meestal ook:functions.phpheader.phpfooter.phpsidebar.phpEn de templatebestanden voor de verschillende pagina's, bijvoorbeeld:single.php(Artikelpagina) enpage.php(Pagina)functions.phpDe bestanden vormen het “brein” van het thema en worden gebruikt om functies toe te voegen, menu's en zijbalken te registreren, etc.

Aanbevolen leesmateriaal WordPress-themaontwikkeling voor beginners: bouw je eerste website-thema van scratch

style.cssDe bestand bevat niet alleen de sjablonen, maar ook commentaren in het bestandskop (file header) die meta-informatie over het thema bevatten, zoals de naam van het thema, de auteur, een beschrijving en de versie. Dit is belangrijk voor WordPress om het thema te herkennen.

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.
/**
 * Theme Name: My Custom Theme
 * Author: Your Name
 * Description: A custom theme built from scratch.
 * Version: 1.0
 */

Het opzetten van een lokale ontwikkelomgeving.

Voordat je met het schrijven van code begint, is het van belang om een professionele lokale ontwikkelingsomgeving op te zetten. Dit zorgt ervoor dat je alle functies kunt testen in een veilige en geisoleerde omgeving, zonder dat dit de online website beïnvloedt.

De aanbevolen toolsets omvatten Local by Flywheel, XAMPP of MAMP; deze kunnen PHP, MySQL en WordPress in één stap installeren. Daarnaast zijn een krachtige code-editor (zoals VS Code of PhpStorm) en een versiebeheerssysteem (zoals Git) essentieel voor het ontwikkelen van moderne websites.

Maak je eerste themapagina (of themafolder).

Allereerst, in de installatie-map van WordPress:wp-content/themes/Binnen de map maak je een nieuwe map, bijvoorbeeld...my-first-themeDe naam van deze map is je thema-identificator.

Vervolgens maak je in die map twee zeer basistische bestanden:style.cssindex.phpZorg ervoor dat…style.cssVul de inhoud van de bestandskopie (file header) volledig in. Log daarna in op de WordPress-beheerder en ga naar het tabblad “Uiterlijk” (Appearance) → “Thema’s” (Themes). Hier moet je je nieuw thema zien staan, al beschikt het nog over geen enkele stijl of functie.

Aanbevolen leesmateriaal Volledig handboek voor het ontwikkelen van WordPress-themes: van basiscode tot praktische tips

Introduceren van essentiële template-componenten

Om het DRY-principe (Don't Repeat Yourself) te naleven, gebruiken WordPress-themes templateparts om gemeenschappelijke delen te splitsen.header.phpfooter.phpsidebar.php

index.phpIn, gebruikenget_header()get_footer()get_sidebar()Er zijn functies beschikbaar om deze onderdelen in te voegen. Deze functies maken deel uit van de kern van de WordPress-templatetags en zorgen ervoor dat de templatebestanden met de corresponderende namen automatisch worden gevonden en geladen.

// 在 index.php 中的典型结构
<?php get_header(); ?>

<main id="main">
    <?php
    if ( have_posts() ) :
        while ( have_posts() ) : the_post();
            // 输出文章内容
        endwhile;
    endif;
    ?>
</main>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Doe een diepe duik in de kern van templates en cycli

De “loop” in WordPress is het kernmechanisme dat bepaalt hoe de inhoud wordt weergegeven. Het is een PHP-codestructuur die controleert of er artikelen (of andere pagina’s) op de huidige pagina zijn. Als er artikelen zijn, wordt er door de loop door alle artikelen heen gelopen en wordt de inhoud weergegeven.

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%

Het begrijpen van de hoofdloop en de query

De meest fundamentele cyclische structuur is als volgt. Deze komt voor in bijna alle templatebestanden en wordt gebruikt om een lijst met artikelen of de inhoud van een enkele artikel te halen en weergeven.

<article>
            <h2><p><strong>Hallo wereld!</strong></p></h2>
            <div><?php the_content(); ?></div>
        </article>

In deze cyclus,have_posts()the_post()Functies bepalen de uitvoer van het proces. Template-taggen zoals…the_title()the_content()Wordt gebruikt om de specifieke informatie van het huidige artikel af te drukken.

Een custom page template maken

Je kunt een unieke lay-out creeren voor een specifieke pagina. Hiervoor moet je een nieuwe PHP-bestand maken en bovenin het bestand een commentaar toevoegen met de naam van het gewenste template.

Aanbevolen leesmateriaal Volledig handboek voor het ontwikkelen van WordPress-themes: van de basis tot de kerntechnieken en praktische tips

Als voorbeeld: creeer een item met de naamtemplate-fullwidth.phpDeze bestand moet met de volgende tekst worden opgestart:

<?php
/**
 * Template Name: 全宽页面
 * Description: 一个没有侧边栏的全宽度页面模板。
 */

Na het opslaan, kun je in het WordPress-beheerpaneel op elke pagina de optie “Volledig breed scherm” zien in het drop-down-menu “Pagagegevens” -> “Template”. Als je deze optie selecteert, wordt de pagina weergegeven met je eigen gedefinieerde template.

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.

Themafuncties worden versterkt met het gebruik van functiebestanden.

functions.phpDit is je thematentoolkit. Hier kun je functies voor themaondersteuning toevoegen, navigatie-menuden registreren, gebieden voor widgets definiëren, stijl- en scriptbestanden opvolgens een bepaald plan invoeren, en zelfdefinieerde functies creeren.

Toevoeging van themaondersteuning en registratie-menu

Gebruikadd_theme_support()Functies kunnen de kernfuncties van WordPress activeren. Bijvoorbeeld is het activeren van de functie voor artikelafbeeldingen (thumbnails) standaard in veel thema's.

function mytheme_setup() {
    // 支持文章特色图像
    add_theme_support( 'post-thumbnails' );
    // 支持HTML5标记(用于评论表单、搜索表单等)
    add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption', 'style', 'script' ) );
    // 支持自定义Logo
    add_theme_support( 'custom-logo' );
}
add_action( 'after_setup_theme', 'mytheme_setup' );

Registreren om de navigatiemenu te gebruikenregister_nav_menus()Functie: Na registratie kun je de positie van deze menu-items beheren in het backend onder “Uiterlijk” -> “Menü”, en ze vervolgens gebruiken in je templates.wp_nav_menu()Roep het op.

register_nav_menus( array(
    'primary' => __( '主导航菜单', 'my-theme' ),
    'footer'  => __( '页脚菜单', 'my-theme' ),
) );

Stijlen en scripts veilig introduceren

Vergeet nooit om de links naar CSS- en JS-bestanden niet rechtstreeks in de template-bestanden te hardcoderen. De juiste manier om dit te doen, is door gebruik te maken van…wp_enqueue_style()wp_enqueue_script()Functies, en deze worden vervolgens geïntegreerd inwp_enqueue_scriptsOp deze haak… Dit zorgt ervoor dat de afhankelijkheden correct worden verwerkt en dat dubbele laden wordt voorkomen.

function mytheme_scripts() {
    // 引入主题主样式表
    wp_enqueue_style( 'mytheme-style', get_stylesheet_uri() );
    // 引入自定义JavaScript文件
    wp_enqueue_script( 'mytheme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'mytheme_scripts' );

Realisatie van responsief ontwerp en thema-aanpassing

Moderne thema's moeten responsief zijn. Dat betekent dat de lay-out en het uiterlijk van het thema zich moeten aanpassen aan verschillende schermgrootten, van mobiele telefoons tot desktops. Dit wordt voornamelijk gerealiseerd met CSS-mediaqueries.

CSS ontwikkelen met een mobiele first-focus:

Het wordt aanbevolen om een “mobile-first” CSS-strategie te gebruiken. Eerst schrijf je de basisstijlen voor kleine schermen op, en vervolgens voeg je met behulp van mediaqueries stuk voor stuk stijlen toe of overschrijf je de bestaande stijlen voor grotere schermen.

/* 基础样式(针对移动设备) */
.container {
    width: 100%;
    padding: 1rem;
}

/* 中等屏幕(平板) */
@media (min-width: 768px) {
    .container {
        width: 750px;
        margin: 0 auto;
    }
}

/* 大屏幕(桌面) */
@media (min-width: 992px) {
    .container {
        width: 970px;
    }
}

Integreren van een WordPress-customizer

De WordPress-wijzegger (Customizer) biedt gebruikers de mogelijkheid om bepaalde instellingen van een thema in real time te bekijken en te bewerken, zoals kleuren en fonten.WP_Customize_ManagerJe kunt aan de thema's aangepaste opties toevoegen.

Eerst...functions.phpEen functie maken in 'China' en deze gebruiken...customize_registerHook.

function mytheme_customize_register( $wp_customize ) {
    // 添加一个设置项,用于保存主题色
    $wp_customize->add_setting( 'primary_color', array(
        'default' => '#0073aa',
        'sanitize_callback' => 'sanitize_hex_color',
    ) );

// 添加一个颜色控件到某个面板或节
    $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'primary_color', array(
        'label'    => __( '主题主色', 'my-theme' ),
        'section'  => 'colors',
        'settings' => 'primary_color',
    ) ) );
}
add_action( 'customize_register', 'mytheme_customize_register' );

Daarna kunt u dit gebruiken in de frontend-CSS.get_theme_mod( 'primary_color' )Deze tekst beschrijft hoe de waarden die de gebruiker heeft ingesteld worden opgehaald en hoe dynamische stijlen worden weergegeven.

Samenvatting

Het ontwikkelen van WordPress-themes is een proces waarbij creativiteit en techniek worden gecombineerd. Het begint met het begrijpen van de basisstructuur van de bestanden, de hiërarchie van templates en de kernfuncties (core loops), gevolgd door het opzetten van een ontwikkelingsomgeving, het schrijven van templateonderdelen, en het vervolgen van de ontwikkeling tot het eindproduct klaar is.functions.phpVan de injectiefuncties tot het realiseren van een responsief ontwerp en aanpasbare opties: ieder stap is gebaseerd op je begrip van de vorige stap. Door deze kernvaardigheden te beheersen, kun je vanaf nul een krachtig, mooi ontworpen WordPress-thema bouwen dat voldoet aan de beste praktijken. Vergeet niet dat praktijk het sleutel is tot leren; door te experimenteren, de officiële documentatie te raadplegen en projecten te bouwen, kun je je vaardigheden verder ontwikkelen.

Veelgestelde vragen (FAQ)

Is het vereist om PHP te beheersen om een WordPress-thema te ontwikkelen?

Ja, een solide kennis van PHP is essentieel. De kern van WordPress is immers in PHP geschreven, en alle templatebestanden en functionaliteiten zijn afhankelijk van PHP. Je moet in ieder geval de basis van PHP begrijpen, zoals variabelen, arrays, functies, cycli en conditionele bewerkingen, evenals hoe je met specifieke WordPress-functies en hooks kunt werken.

Kan de informatie in het hoofd van het style.css-bestand van het thema worden gewijzigd?

Ja, dat is mogelijk, maar moet met voorzichtigheid worden gedaan. De “Theme Name” in de bestandskopie is de enige identificatie die het thema in de achtergrond herkent. Als je deze tijdens het ontwikkelen verandert, zal WordPress het thema als een nieuw thema behandelen. Voor thema’s die al online zijn gebruikt, kan het direct veranderen van de naam leiden tot dat gebruikers hun website-thema moeten wijzigen of dat hun instellingen verloren gaan.

Hoe zorg ik ervoor dat mijn thema ondersteunt wordt bij meertalige vertalingen?

Je moet je thema voorbereiden op internationalisatie (i18n). Omwikkel in de code alle strings voor gebruikers met WordPress vertaalfuncties, bijvoorbeeld__( ‘文本’, ‘my-theme-textdomain’ )_e( ‘文本’, ‘my-theme-textdomain’ )Vervolgens wordt met een tool als Poedit een nieuwe vertaling gemaakt..potTemplatebestanden: Vertalers kunnen hiermee verschillende talenversies van een tekst genereren..po.moBestanden. Ten slotte, gebruiken...load_theme_textdomain()Function loading.

Wat is het verschil tussen een subthema en een hoofdthema? Wanneer moet je er een gebruikmaken?

Subthema's erfen alle functies en stijlen van het overkoepelende thema (het 'parent theme') en bieden de mogelijkheid om dit thema veilig te bewerken, nieuwe functies toe te voegen of stijlen te overschrijven. Als je een bestaand, voltooid thema wilt aanpassen en tegelijkertijd wilt dat deze toekomstig veilig kan worden bijgewerkt zonder dat je eigen aanpassingen verloren gaan, moet je een subthema maken. Een subthema vereist slechts één...style.cssEn eenfunctions.phpDe bestand werkt zoals het zou moeten werken.