Volledig handboek voor het ontwikkelen van WordPress-themes: van het beginnen tot het maken van aangepaste websites

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

Als je wilt starten met het ontwikkelen van WordPress-themes, is het belangrijk om een basistemplate te bouwen dat goed werkt. Een standaard WordPress-theme bestaat uit een set bestanden die zich bevinden in een specifieke map in het WordPress-installatiepad./wp-content/themes/De map in de directory moet twee basisbestanden bevatten:index.phpstyle.css

style.cssHet bestand bepaalt niet alleen het uiterlijk van het thema, maar de commentaren die zich aan het begin van het bestand bevinden vormen ook de identiteit van het thema. WordPress gebruikt deze informatie om het thema te herkennen en te weergeven.

/*
Theme Name: 我的自定义主题
Theme URI: https://example.com/my-theme
Author: 你的名字
Author URI: https://example.com
Description: 这是一个用于学习的自定义WordPress主题。
Version: 1.0
License: GPL v2 or later
Text Domain: my-custom-theme
*/

index.phpDit is de belangrijkste templatefile; deze is verantwoordelijk voor het weergeven van de inhoud aan de bezoekers. Een van de simpelste voorbeelden…index.phpHet mag alleen de basis-HHTML-structuur en PHP-code bevatten die de kernfuncties van WordPress oproepen.

Aanbevolen leesmateriaal Een beginnershandleiding voor het ontwikkelen van WordPress-thema's: het bouwen van een aangepaste template vanaf nul.

<!DOCTYPE html>
<html no numeric noise key 1008>
<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 1005>
    <header>
        <h1><a href="/nl/</?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
        <p><p><strong>Deze website is bedoeld om u te informeren over de activiteiten van het bedrijf.</strong></p></p>
    </header>
    <main>
        <?php
        if ( have_posts() ) :
            while ( have_posts() ) : the_post();
                the_content();
            endwhile;
        endif;
        ?>
    </main>
    <?php wp_footer(); ?>
</body>
</html>

Core templates en bestandsstructuur

Een thema met alle benodigde functies bestaat niet alleen uit een homepage. Het systeem met niveaus van templates in WordPress biedt je de mogelijkheid om specifieke templatebestanden aan te maken voor verschillende soorten pagina's.

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.

Het begrijpen van het mechanisme van template-lagen

De template-hiërarchie bepaalt de logische regels die WordPress gebruikt om te bepalen welke templatebestand wordt gebruikt om de huidige pagina weergeven. Als je bijvoorbeeld een artikel bezoekt, zal WordPress op volgorde kijken welke templatebestanden beschikbaar zijn.single-post.phpsingle.phpEn tot slotindex.phpHet begrijpen en goed gebruiken van deze mechanisme is essentieel voor het creeren van flexibele thema's.

De rol van de belangrijke templatebestanden

Naast...index.phpJe moet nog enkele andere kerntemplatebestanden maken.header.phpVerantwoordelijk voor het genereren van de koppen van de documenten, inclusief...Topnavigatie voor regio's en sites;footer.phpVervolgens worden de inhoud van de voetnoot en de sluitende tag weergegeven.get_header()get_footer()Functies kunnen worden gebruikt in andere templates.

functions.phpDit is een functionaliteitsbestand voor het thema; het is geen template, maar zeer belangrijk. Hier kun je functies voor themaondersteuning toevoegen, een registratiemenu en een gebied voor widgets, evenals scripts en style sheets.

// 在 functions.php 中添加主题支持
function my_theme_setup() {
    // 支持文章和页面中的特色图像
    add_theme_support( 'post-thumbnails' );
    // 支持自定义标志
    add_theme_support( 'custom-logo' );
    // 为文章生成可用的RSS源链接
    add_theme_support( 'automatic-feed-links' );
}
add_action( 'after_setup_theme', 'my_theme_setup' );

Themafuncties en aangepaste eigenschappen

Nu de basisinfrastructuur van het thema is afgerond, is de volgende stap om de functionaliteiten uit te breiden, zodat het thema professioneler en gebruiksvriendelijker wordt.

Aanbevolen leesmateriaal Compleet handboek voor het ontwikkelen van WordPress-themes van nul tot expertniveau: bouw je eigen website

Registreren van navigatiemenu's en widgets

Om het voor gebruikers gemakkelijk te maken om menu's en sidebar's in de backend te beheren, moet je…functions.phpRegistreer deze gebieden in China. Gebruik hiervoor...register_nav_menus()Een functie kan één of meerdere menuposities registreren.

function my_theme_menus() {
    register_nav_menus(
        array(
            'primary' => __( '主导航菜单', 'my-custom-theme' ),
            'footer'  => __( '页脚菜单', 'my-custom-theme' ),
        )
    );
}
add_action( 'init', 'my_theme_menus' );

Je kunt de regio voor het registreren van widgets (of “balk”) gebruiken.register_sidebar()Nadat de gebruiker zich heeft geregistreerd, kan hij in het backend onder “Uiterlijk” -> “Widgetten” widgets naar deze gebieden slepen.

veilig laden van scripts en styles

Vergeet nooit om links naar CSS- of JavaScript-bestanden niet rechtstreeks in de templatebestanden te hardcoderen. De juiste manier om dit te doen, is door gebruik te maken van…wp_enqueue_style()wp_enqueue_script()Functionen die worden gemonteerd…wp_enqueue_scriptsOp de haak. Dit zorgt ervoor dat de afhankelijkheden correct zijn en dat dezelfde bron niet meerdere keren wordt geladen.

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%
function my_theme_scripts() {
    // 排入主样式表
    wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
    // 排入自定义JavaScript文件
    wp_enqueue_script( 'my-theme-script', get_template_directory_uri() . '/js/main.js', array( 'jquery' ), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );

Advanced Development en Themaanpassing

Als de basisfuncties en de structuur stabiel zijn, kunnen er krachtigere tools worden gebruikt om de ontwikkelingsefficiëntie te verbeteren en de professionaliteit van het thema te verhogen.

Inhoud gebruiken om te worden weergegeven met een loop in WordPress

WordPress-cycliën vormen de kern van themaontwikkeling. Het gaat om stukken PHP-code die controleren of er artikelen zijn, en indien dit het geval is, deze artikelen opnieuw weergeven in een cyclische manier. Er zijn ook meer geavanceerde manieren van gebruik.WP_QueryKlassen creëren aangepaste queries om inhoud af te leveren van een specifieke categorie, tag of zelfgemaakte artikeltype.

Integreren van aangepaste artikeltypes en classificatiesystemen

Voor het behoeef om niet-standaard content te tonen, zoals producten of portfolio's, is het ideaal om een aangepaste artikeltype (Custom Post Type of CPT) en een aangepaste categorieënstructuur (Custom Taxonomy) te creeren. Dit kan ook worden gerealiseerd met plugins, maar...functions.phpGebruikt in het Chinees (vereenvoudigd)register_post_type()Als je functies rechtstreeks registreert, wordt het functioneren van je thema completer en onafhankelijk.

Aanbevolen leesmateriaal WordPress Thema-ontwikkeling van begin tot eind: Een complete handleiding voor het bouwen van moderne, responsieve WordPress thema's

function my_theme_register_portfolio() {
    $args = array(
        'public' => true,
        'label'  => '作品集',
        'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
        'has_archive' => true,
    );
    register_post_type( 'portfolio', $args );
}
add_action( 'init', 'my_theme_register_portfolio' );

Implementeren van thema-customizer-instellingen

De WordPress Customizer biedt gebruikers de mogelijkheid om thema-instellingen, zoals kleuren, logo's en lay-out, in real time te bekijken en te bewerken.$wp_customize->add_setting()$wp_customize->add_control()Met deze methode kun je verschillende instellingen toevoegen aan een thema, waardoor de bruikbaarheid en professionaliteit van het thema aanzienlijk worden verbeterd.

Samenvatting

Het ontwikkelen van WordPress-themes is een systeemproces dat begint met het bouwen van basisbestanden, en vervolgens verder gaat naar het beheersen van templates, het uitbreiden van functies en het maken van geavanceerde aanpassingen. Door de kerntemplates te begrijpen en deze handig te gebruiken...functions.phpDoor functies te toevoegen en de beste praktijken te volgen (bijvoorbeeld het veilig toevoegen van bronnen), kunnen ontwikkelaars thema's creeren die krachtig, flexibel en conform de standaarden zijn. Verder ontwikkelde technieken, zoals het aanpassen van artikeltypen en het integreren van customizers, kunnen de kwaliteit van deze thema's nog verder verbeteren, tot het niveau van productgerelateerde oplossingen. Continu leren en oefenen is essentieel om deze techniek onder de knie te krijgen.

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.

Veelgestelde vragen (FAQ)

Welke basiskennis is nodig om een WordPress-thema te ontwikkelen?

Je moet een solide kennis van HTML en CSS hebben, aangezien dit de basis vormt voor het ontwerp van de look & feel van webpagina's. PHP is de serverzijde-programmeringstaal van WordPress en je moet de basis van de syntax begrijpen, vooral hoe deze te combineren is met HTML. Een beperkte kennis van JavaScript kan ook handig zijn voor het toevoegen van interactieve functies.

Wat doet 'Text Domain' in het bestand 'style.css'?

Text DomainDit is een identificator die wordt gebruikt voor de internationalisering van een thema. Het vertelt WordPress welk tekstveld wordt gebruikt om de vertaalmappen (.po/.mo) van het thema op te slaan. In het thema kunnen vertaalfuncties worden gebruikt om de teksten in verschillende talen aan te passen.__()_e()Wanneer je je bericht naar andere talen wilt vertalen, moet je deze tekstinhoud invullen. Op deze manier kan je onderwerp correct worden vertaald.

Waarom werkt mijn eigen template-bestand niet?

Dit gebeurt meestal omdat de bestandsnaam niet voldoet aan de regels voor de structuur van de templates, of omdat de bestand niet is opgeslagen in de root-map van het thema. Controleer of de prefix van de bestandsnaam correct is (bijvoorbeeld, de bestandsnaam van een pagina-template moet…).page-{slug}.phpZorg ervoor dat de bestand zich rechtstreeks in je themapagina bevindt, en niet in een submap. Het kan ook helpen om de cache van de website en de browser te leegmaken.

Hoe voeg ik compatibiliteit met een page generator toe aan mijn thema?

Om het thema goed te laten werken met populaire pagebuilders (zoals Elementor en WPBakery), moet je ervoor zorgen dat de mark-upstructuur van het thema standaard is en schoon is. Vermijd te veel inline-stijlen of vastgelegde containerbreedten. Het belangrijkste is…functions.phpEr wordt in de verklaring steun voor deze bouwers aangekondigd. Bijvoorbeeld, voor Elementor kan dit worden toegevoegd.add_theme_support( 'elementor' );Daarnaast worden er voldoende mogelijkheden (‘hooks’) bieden voor de kernelementen van het thema (zoals de header en footer), zodat de pagina-builder-plug-ins deze elementen zonder problemen kunnen integreren.