Volledig handboek voor het ontwikkelen van WordPress-themes: bouw het uiterlijk van je website vanaf nul op

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

Het begrijpen van de basisstructuur en de belangrijkste bestanden van het onderwerp

De kern van een standaard WordPress-thema bestaat uit een map die bevatte specifieke bestanden, en deze map is te vinden op een bepaalde locatie in het WordPress-systeem./wp-content/themes/De inhoud bevindt zich in een map. Voor elke categorie zijn ten minste twee essentiële bestanden nodig om door WordPress herkend en actief te worden.

Allereerst…style.cssDit is niet alleen een stylesheet voor het thema, maar ook een informatief bestand. De commentaarblock bovenin bevat de basisinformatie over het thema, zoals de naam van het thema, de ontwikkelaar, een beschrijving en de versie. Zonder deze correct geformatteerde commentaarblock kan WordPress je thema niet weergeven in de lijst met thema’s in de backend.

Een andere vereiste bestand is…index.phpDit is het standaardtemplatebestand voor het thema. Als WordPress geen meer specifiek template kan vinden om de inhoud te weergeven, wordt dit bestand gebruikt.

Aanbevolen leesmateriaal Handboek voor het ontwikkelen van WordPress-themes: van nul tot een persoonlijke website-uitstraling

Naast deze elementen, bevat een volledig functionerend thema meestal de volgende bestanden:header.phpfooter.phpsidebar.phpfunctions.phpbestandfunctions.phpHet belangrijkste is dat het de “hoofd” van het thema is: het biedt je de mogelijkheid om functies toe te voegen, een sidebar te registreren, een navigatiemenu te definiëren, etc., zonder dat je de kerncode hoeft aan te passen.

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.

Hoe ontwerp je een standaard thema-informatiekop?

style.cssIn de bestand moet het format van de header-informatie strikt worden gevolgd. Hieronder staat een standaardvoorbeeld:

/*
Theme Name: 我的第一个主题
Theme URI: https://www.example.com/my-first-theme/
Author: 你的名字
Author URI: https://www.example.com/
Description: 这是一个用于学习WordPress主题开发的简单主题。
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-first-theme
*/

Deze informatie wordt weergegeven op de pagina “Uiterlijk” -> “Thema’s” in het WordPress-administratiepaneel.Text DomainDit is belangrijk voor internationalisatie; wanneer je de tekst van een thema gaat vertalen naar andere talen, moet je dit zorgvuldig doen.

Creëer een basisstructuur voor een paginemodel

Templatebestanden vormen de basis van een WordPress-thema en bepalen hoe verschillende soorten inhoud worden weergegeven. Het begrijpen en gebruiken van de hiërarchische structuur van de templates is essentieel voor een efficiënte ontwikkeling.

Maak bestandjes voor de boven- en onderste delen van de pagina.

Het is een goede praktijk om repetitieve delen van een pagina in aparte bestanden op te slaan, om de code opgeruimd en gemakkelijk te onderhouden te houden.header.phpDeze bestanden bevatten meestal een verklaring over het type van het document.<head>\nAlle tags in het gebied (zoals titels, CSS- en JS-referenties), evenals de header-elementen van de website (zoals het logo en het hoofdmenu).

Aanbevolen leesmateriaal WordPress-themaprogrammering vanaf nul: een volledig handboek voor het maken van aangepaste website-themes

<!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 id="site-header">
        <h1><a href="/nl/</?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
    </header>

Correspondentieel,footer.phpDe bestand bevat voetnoten (bijvoorbeeld auteursrechtnieuws) en eindigt op…header.phpDe HTML-taggen die in het midden zijn geopend, worden allemaal tegelijkertijd opgeroepen.wp_footer()Functie.

    <footer id="site-footer">
        <p>©</p>
    </footer>
    <?php wp_footer(); ?>
</body>
</html>

wp_head()wp_footer()Deze twee ‘hooks’ zijn essentieel; ze bieden de mogelijkheid voor plugins en het core van WordPress om code te injecteren in de boven- en onderste delen van een pagina.

Implementeren van templates voor de homepage en de artikelpagina

Als algemene container voor thema's...index.phpDe bestand gebruikt WordPress-template-taggen om andere delen van het template in te roepen en om artikelen op cyclische wijze af te drukken.

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%
<?php get_header(); ?>

<main id="primary">
    <?php if ( have_posts() ) : ?>
        <?php while ( have_posts() ) : the_post(); ?>
            <article id="post-<?php the_ID(); ?>" no numeric noise key 1007>
                <h2><a href="/nl/</?php the_permalink(); ?>"><p><strong>Hallo wereld!</strong></p></a></h2>
                <div class="entry-content">
                    <?php the_content(); ?>
                </div>
            </article>
        
</main>

Voor de pagina van een enkele artikel moet je het volgende creeren:single.phpDe structuur is…index.phpIn vergelijking met… wordt dit proces meestal uitgevoerd door een opgeroepen (gecallde) functie of methode.the_post_thumbnail()Om de speciale afbeeldingen te weergeven, wordt gebruik gemaakt van...the_category()the_tags()Om de categorieën en tags te weergeven…

Functies uitbreiden in de themafunctiebestand

functions.phpDe bestand is de plek waar je alle aangepaste functies en instellingen toevoegt aan je WordPress-thema. Het is net een soort plugin, maar specifiek gemaakt voor jouw thema.

De basisfuncties voor het instellen van een thema:

Gebruikadd_theme_support()De functie kan de verschillende mogelijkheden aangeven die het thema ondersteunt, zoals bijzondere afbeeldingen voor artikelen, aangepaste logos, HTML5-markeringen, etc. Dit wordt meestal beschreven in een specifiek document of handleiding.after_setup_themeDe actie wordt uitgevoerd in de functie die wordt opgeroepen door de hook.

Aanbevolen leesmateriaal Volledig handboek voor het ontwikkelen van WordPress-themes: van nul tot een professioneel, responsief website

function my_theme_setup() {
    // 启用文章特色图像
    add_theme_support( 'post-thumbnails' );

// 注册导航菜单位置
    register_nav_menus( array(
        'primary' => __( '主导航菜单', 'my-first-theme' ),
        'footer'  => __( '页脚菜单', 'my-first-theme' ),
    ) );

// 支持HTML5标记
    add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
}
add_action( 'after_setup_theme', 'my_theme_setup' );

Realisatie van een sidebar en een gadgetgebied

Widgets zijn een belangrijk onderdeel van WordPress. Om een widgetgebied (sidesbar) te creeren voor een thema, moet je…functions.phpGebruikt in het Chinees (vereenvoudigd)register_sidebar()Functie.

function my_theme_widgets_init() {
    register_sidebar( array(
        'name'          =&gt; __( '主侧边栏', 'my-first-theme' ),
        'id'            =&gt; 'sidebar-1',
        'description'   =&gt; __( '在这里添加小工具。', 'my-first-theme' ),
        'before_widget' =&gt; '<section id="%1$s" class="widget %2$s">',
        'after_widget'  =&gt; '</section>',
        'before_title'  =&gt; '<h2 class="widget-title">',
        'after_title'   =&gt; '</h2>'function my_first_theme_widgets_init() {  
    register_sidebars( array(  
        'name' =&gt; 'My First Theme Sidebar',  
        'id' =&gt; 'my-first-theme-sidebar',  
        'description' =&gt; 'De eerste sidebar van mijn thema',  
    ) );  
    add_action( 'widgets_init', 'my_first_theme_widgets_init' );  
};

Na het registreren kun je…sidebar.phpGebruikt in een templatebestand.dynamic_sidebar( ‘sidebar-1’ )Het is tijd om deze regio te activeren/te gebruiken.

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.

Integreren van stijlbestanden en scriptbestanden

Het correct toevoegen van CSS-stijlbestanden en JavaScript-scripts aan het thema is van belang voor de prestaties en compatibiliteit. Vergeet nooit om de links rechtstreeks in de template-bestanden te coderen; gebruik in plaats daarvan het systeem voor het opvolgens van taken (enqueue) dat WordPress biedt.

Het belangrijkste stijlboek voor het definiëren van het thema

Hoewelstyle.cssHet is vereist, maar we bewaren meestal alleen de koppen van de informatie om de onderwerpen te kunnen herkennen. De daadwerkelijke stijl wordt opgeslagen in een andere CSS-bestand, waarna deze stijl wordt toegepast via…wp_enqueue_style()Function loading.

function my_theme_scripts() {
    // 加载主样式表
    wp_enqueue_style( 'my-theme-style', get_stylesheet_uri(), array(), '1.0' );

// 加载一个自定义样式表
    wp_enqueue_style( 'my-theme-custom-style', get_template_directory_uri() . '/assets/css/custom.css', array('my-theme-style'), '1.0' );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );

get_stylesheet_uri()De functie wijst automatisch naar de rootmap van het thema.style.cssDe gebruik van een queuing-systeem maakt het gemakkelijk voor plugins of subthema's om van je stijl afhankelijk te zijn of deze te vervangen.

Add en integreren van aangepaste scripts

Voor JavaScript-bestanden is het vergelijkbaar, maar je moet gebruikmaken van...wp_enqueue_script()Een goede praktijk is om scripts in de voetnoot van de pagina te laden, om de snelheid van het weergeven van de pagina te verbeteren.

function my_theme_scripts() {
    // ... 样式加载代码 ...

// 在页脚加载一个自定义JS文件,并依赖jQuery
    wp_enqueue_script( 'my-theme-script', get_template_directory_uri() . '/assets/js/main.js', array( 'jquery' ), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );

Let op de laatste parameter.trueHet vertelt WordPress waar de script moet worden opgeslagen: in de voetnoot van de pagina. Als je script op een bepaalde plek op de pagina moet worden gebruikt…<head>\nAls het wordt geladen, wordt het hierop ingesteld.false

Samenvatting

Het ontwikkelen van WordPress-themes vereist dat je design, HTML, PHP en de kernkennis van WordPress goed beheerst. Het begint met het begrijpen van de structuur en het doel van het thema.style.cssindex.phpWe beginnen met deze twee fundamentele bestanden en bouwen de structuur van de pagina op door aparte template-bestanden te maken. Vervolgens maken we gebruik van de krachtige mogelijkheden die beschikbaar zijn…functions.phpDe bestanden brengen verschillende functies in je thema, waarna de stijl en scripts worden beheerd met behulp van een standaardqueuing-methode. Door de coding-standaarden en template-hiërarchie van WordPress te volgen, creer je niet alleen een thema met een duidelijke structuur en gemakkelijk te onderhouden, maar je zorgt ook voor compatibiliteit met het hele WordPress-ecosysteem. Het is de beste manier om deze techniek onder de knie te krijgen om met de creatie van een zo simpel mogelijk thema-folder te beginnen en steeds meer functies te toevoegen.

Veelgestelde vragen (FAQ)

开发一个WordPress主题需要掌握哪些语言

Om een basis-WWordPress-thema te ontwikkelen, moet je HTML, CSS en PHP beheersen. HTML wordt gebruikt om de structuur van de pagina's op te bouwen, CSS wordt gebruikt om de stijl en lay-out te bepalen, en PHP is de serverzijde-scripttaal van WordPress die alle dynamische functies mogelijk maakt. Voor meer complexe en interactieve thema's is ook kennis van JavaScript essentieel.

Hoe zorg ik ervoor dat mijn thema meerdere talen ondersteunt?

Het proces om je product of dienst te bewerken zodat deze in meerdere talen wordt ondersteund, heet internationalisering. Hierbij moet je onder andere:style.cssDe hoofdinhoud moet op de juiste manier worden ingesteld.Text DomainEn in…functions.phpGebruikt in het Chinees (vereenvoudigd)load_theme_textdomain()De functie laadt de taalbestand in.

Daarna moeten in het PHP-bestand van het thema alle te vertalen strings worden gebruikt met een dergelijke methode.__('Hello World', 'my-theme-text-domain')Zo'n vertaalfunctie moet worden ingepakt (of geëmballeerd). Ten slotte wordt er een tool gebruikt, zoals Poedit, om de vertalingen te genereren..po.moDe taalbestanden zijn bedoeld voor vertalers.

Is responsief ontwerp een must in themaontwikkeling?

Op deze dag in 2026 is responsief ontwerp geen pluspunt meer, maar een essentieel vereiste voor het ontwikkelen van websites. Meer dan de helft van het wereldwijde internetverkeer komt van mobiele apparaten. Een website zonder responsief ontwerp kan de gebruikerservaring ernstig belemmeren en heeft een negatieve invloed op de zoekmachineposities van de website op mobiele apparaten.

Je moet technieken als CSS-mediaqueries gebruiken om te zorgen dat het lay-out van je thema zich aanpast aan schermen van verschillende afmetingen – van desktopcomputers tot smartphones – waardoor een goede gebruikerservaring wordt geboden. Veel moderne CSS-frames (zoals Tailwind CSS) maken het ook gemakkelijk om responsieve interfaces snel te bouwen.

Hoe kunnen gebruikers mijn thema aanpassen via de backend?

Het aanbieden van achtergrondinstellingen die kunnen worden aangepast door gebruikers, wordt voornamelijk gerealiseerd via de “Customizer”-API van WordPress. Je kunt dit doen door…functions.phpGebruikt in het Chinees (vereenvoudigd)$wp_customize->add_setting()$wp_customize->add_control()Methoden om instellingen en controlelementen te toevoegen.

Als voorbeeld kun je een optie toevoegen waarmee gebruikers de kleur van de website-titel kunnen wijzigen. De waarden voor deze instellingen kunnen worden gevonden in de themaplaatinafbeelding (theme template file).get_theme_mod()De functie haalt de gewenste gegevens op en wijst ze vervolgens af. Dit biedt gebruikers de mogelijkheid om het uiterlijk van een thema te personaliseren zonder dat ze de code hoeven aan te passen, waardoor de gebruikersvriendelijkheid en professionaliteit van het thema aanzienlijk worden verbeterd.