Om een volledig functionerende WordPress-thema te ontwikkelen, is het eerst nodig om de basisstructuur van de betreffende bestanden te begrijpen. Een zeer vereenvoudigd WordPress-thema bestaat uit ten minste twee bestanden:style.css 和 index.phpDaarvan zijn erstyle.css Het is niet alleen een stylesheet, maar ook een soort “identiteitsbewijs” van het thema. De commentaarblokken in het begin van het bestand bevatten alle meta-informatie over het thema.
Het document met de verklaring van het onderwerp
style.css In het begin van het bestand moet een specifiek commentaarblok staan, waarmee het thema aan het WordPress-systeem wordt gemeld. De inhoud van dit commentaarblok bevat informatie over het thema, zoals de naam van het thema, de ontwikkelaar, een beschrijving, en de versienummer. Deze gegevens worden weergegeven in de lijst met beschikbare thema's in het WordPress-beheerpaneel.
/*
Theme Name: 我的第一个主题
Theme URI: https://example.com/my-first-theme/
Author: 你的名字
Author URI: https://example.com/
Description: 这是一个简洁、响应式的自定义 WordPress 主题。
Version: 1.0
License: GPL v2 or later
Text Domain: my-first-theme
*/ Core template file
index.php Dit is het standaardtemplatebestand van het thema. Als WordPress geen specifiekere templatebestand kan vinden, wordt dit bestand gebruikt. Het fungeert als een soort “reservaat” of uitgangspunt voor het hele thema. Naarmate het ontwikkelingsproces vordert, zal je meer specifieke templatebestanden maken, bijvoorbeeld voor de individuele artikelpagina’s. single.phpGewijd aan de pagina page.phpGeproduceerd voor de archivering van artikelen archive.php Dit soort hiërarchische structuur van templates vormt de kern van het themadesign in WordPress.
Aanbevolen leesmateriaal Van nul beginnen: Een volledig handboek en beste praktijken voor het ontwikkelen van WordPress-themes。
De kernfuncties en templates voor het bouwen van een thema:
Een set statische HTML-pagina's kan niet worden beschouwd als een WordPress-thema, omdat er geen dynamische toegang is tot de door WordPress beschikbare gegevens en functies. Dit wordt voornamelijk gerealiseerd met de template-taggen en de The Loop in WordPress.
Het begrijpen van de hoofdloop (main loop) van WordPress
“Cyclo” is het standaardmechanisme in WordPress waarmee artikelen uit de database worden gehaald en op de pagina worden weergegeven. Het betreft een stuk PHP-code dat controleert of er artikelen beschikbaar zijn, en indien ja, deze artikelen op een cyclische manier wordt weergegeven. Bijna alle themaplaten bevatten varianten van deze cyclische code.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><p><strong>Hallo wereld!</strong></p></h2>
<div class="entry-content">
<?php the_content(); ?>
</div>
<?php endwhile; else : ?>
<p><?php esc_html_e( '抱歉,没有找到任何文章。', 'my-first-theme' ); ?></p>
<?php endif; ?> In de bovenstaande code:have_posts() 和 the_post() De functies bepalen de loop, en the_title() 和 the_content() Dit zijn template-taggen die worden opgeroepen binnen de loop, en worden gebruikt om de titel en inhoud van het huidige artikel af te drukken.
Invoegen van de gemeenschappelijke delen: de boven- en onderste helft van de pagina
Om het DRY-principe (Don't Repeat Yourself) te naleven, worden de gemeenschappelijke delen van een WordPress-thema meestal in aparte bestanden opgeslagen. De twee belangrijkste hiervan zijn: header.php 和 footer.php。
在 index.php Je kunt ze op deze manier introduceren:
<?php get_header(); ?>
<!-- 主循环内容在这里 -->
<?php get_footer(); ?> get_header() De functie zal worden geïmporteerd. header.php De bestand moet een verklaring van de documenttypen bevatten.<head> De regio's en de publieke elementen aan de bovenkant van de website (zoals het logo en het navigatiemenu).get_footer() Er zal worden geïntroduceerd. footer.phpBevat de voetnoten en de afsluitende HTML-taggen.
Aanbevolen leesmateriaal Dieper inzicht in het ontwikkelen van WordPress-themes: een essentieel handboek van het begin tot de volmaaktheid。
Integreren van kernfuncties van WordPress
Een uitstekend thema moet naadloos integreren met de kernfuncties van WordPress, zoals menu's, widgets en afbeeldingen van artikelen. Dit biedt webbeheerders grote mogelijkheden voor personalisatie, zonder dat ze de code hoeven aan te passen.
Registreren in het navigatiemenu
Het menu-systeem van WordPress biedt gebruikers de mogelijkheid om navigatie-menues in het backend te creeren en te beheren, onder de opties “Uiterlijk” → “Menu”. De thema’s moeten aangeven waarop menues worden ondersteund.
function my_first_theme_setup() {
register_nav_menus( array(
'primary' => __( '主导航菜单', 'my-first-theme' ),
'footer' => __( '页脚菜单', 'my-first-theme' ),
) );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' ); Na het registreren kunt u gebruikmaken van de sjablonen (templates). header.phpPlaats het op de corresponderende plek en gebruik… wp_nav_menu() De functie is klaar om het menu te weergeven.
De widget-ruimte is actief.
Het gebied voor kleine hulpmiddelen (of “sidesbar”) biedt gebruikers de mogelijkheid om content te toevoegen door hulpmiddelen te slepen. Eerst moet je een sidesbar registreren:
function my_first_theme_widgets_init() {
register_sidebar( array(
'name' => __( 'Hoofdzijbalk', 'my-first-theme' ),
'id' => 'sidebar-1',
'description' => __( 'Voeg hier widgets toe.', 'my-first-theme' ),
'before_widget' => ' function my_first_theme_widgets_init() {
register_sidebar( array(
'name' => __( 'Hoofdzijbalk', 'my-first-theme' ),
'id' => 'sidebar-1',
'description' => __( 'Voeg hier widgets toe.', 'my-first-theme' ),
'before_widget' => ' <'<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>'function my_first_theme_widgets_init() {
register_sidebars( array(
'name' => 'My First Theme Sidebar',
'id' => 'my-first-theme-sidebar',
'description' => 'De eerste sidebar van mijn thema',
) );
add_action( 'widgets_init', 'my_first_theme_widgets_init' );
}; Vervolgens, in het templatebestand (bijvoorbeeld...) sidebar.phpIn dit voorbeeld wordt gebruikgemaakt van dynamic_sidebar( ‘sidebar-1’ ) Roep het op.
Artikelen kunnen worden voorzien van speciale afbeeldingen.
De 'Post Thumbnail' (een representatief afbeelding van een artikel) moet worden geactiveerd. Hiervoor moet u de ondersteuning voor deze functie toevoegen aan het functions.php-bestand van uw thema.
Aanbevolen leesmateriaal In dieper analyses van WordPress-themaontwikkeling: een volledig praktisch handboek van het begin tot de volmaakte beheersing。
add_theme_support( ‘post-thumbnails’ ); Daarna kun je dit gebruiken in een loop. the_post_thumbnail() De functie wordt gebruikt om de karakteristieke afbeeldingen van dit artikel uit te geven.
Applicatie-stijlen en front-end-scripts
Moderne WordPress-themata moeten responsief zijn en in staat zijn om stijlbestanden (style sheets) en JavaScript-bestanden efficiënt en ordelijk te laden.
De stijl en scripts zijn op de juiste manier geplaatst.
Het zou absoluut niet goed zijn om dit rechtstreeks in de templatebestanden te gebruiken. <link> 或 <script> Tags zijn resources die hardgecodeerd zijn. De juiste manier om dit te doen, is om… wp_enqueue_style() 和 wp_enqueue_script() Function, in... functions.php Het wordt in China geladen via een hook.
function my_first_theme_scripts() {
// 排入主样式表
wp_enqueue_style( ‘my-first-theme-style’, get_stylesheet_uri() );
// 排入自定义 JavaScript 文件
wp_enqueue_script( ‘my-first-theme-navigation’, get_template_directory_uri() . ‘/js/navigation.js’, array(), ‘1.0’, true );
// 如果需要,排入 jQuery(WordPress 默认已包含)
// wp_enqueue_script( ‘jquery’ );
}
add_action( ‘wp_enqueue_scripts’, ‘my_first_theme_scripts’ ); Deze methode biedt WordPress de mogelijkheid om afhankelijkheden te beheren, waardoor dubbele laden wordt voorkomen en het gemakkelijker wordt voor subthema's om bepaalde functies te overschrijven.
Een responsief ontwerp bouwen
Zorg ervoor dat jouw style.css Het bevat Media Queries, waardoor de lay-out kan worden aangepast aan verschillende schermgrootten, van mobiele telefoons tot desktops. header.php 的 <head> Het is van belang dat bepaalde meta-taggen voor de viewport worden toegevoegd:
<meta name="viewport" content="width=device-width, initial-scale=1"> Voldoen aan de beste praktijken en veiligheidsregels
Het ontwikkelen van thema's gaat niet alleen om het realiseren van bepaalde functionaliteiten, maar ook om het garanderen van de veiligheid, onderhoudbaarheid van de code, en de compatibiliteit met de WordPress-ecosysteem.
Internationalisering en lokalisering
Zorg vanaf het begin dat de tekstvelden en de te vertalen strings klaar zijn voor gebruik, zodat je berichting door gebruikers uit alle over de wereld kan worden gebruikt. __( ‘文本’, ‘my-first-theme’ ) 或 _e( ‘文本’, ‘my-first-theme’ ) Om alle naar de front-end gestuurde, voor gebruikers zichtbare strings te omhullen, moet ervoor worden gezorgd dat… style.css Zorg ervoor dat de Text Domain correct is ingesteld in alle functies waar deze wordt gebruikt.
Datavalidatie, ontsnapping en schoonmaken
Vertrouw nooit op gegevens die van gebruikers of uit de database komen. Wanneer gegevens worden afgegeven, moet deze altijd worden geëscapeseerd.
Gebruik esc_html() Escaperen van HTML-content.
Gebruik esc_url() Een URL ontsluiten (of 'escape' een URL).
Gebruik esc_attr() Echteren van HTML-attributen.
Voor PHP-variabelen die in JavaScript worden gebruikt, moet worden... wp_json_encode()。
Overwegingen voor prestatieoptimalisatie
Je kunt de prestaties van een thema verbeteren door het volgende te doen: zorg ervoor dat scripts en stijlbestanden op een logische manier worden geladen (met rekening gehouden met afhankelijkheden en versienummers); stel je ervoor dat alle afbeeldingen zijn geoptimaliseerd; overweeg het vertraagd laden van niet-kritieke afbeeldingen; en beperk zo veel mogelijk de HTTP-verzoeken naar externe bronnen. Houd de code kort en efficiënt.
Samenvatting
Het ontwikkelen van WordPress-themes is een systeemontwerpproces dat begint met het begrijpen van de fundamentele principes. style.css 和 index.php We beginnen met een stap voor stap-gang naar de onderdelen van het thema, zoals de template-laag, de hoofdloop (main loop) en de integratie van belangrijke functies. Het belangrijkste is om dynamisch te werken met de template-taggen en -functies die WordPress biedt, en om het principe van modularisatie van gemeenschappelijke code te volgen. Daarnaast is het belangrijk om de front-end-resources op de juiste manier in te stellen, een responsief ontwerp te realiseren, en veiligheid (bijvoorbeeld door data te ontsluiten) en internationalisatie te integreren als fundamentele aspecten van het ontwikkelingsproces. Door deze kernprocessen en beste praktijken te volgen, kun je een modern WordPress-thema bouwen dat krachtig is, veilig, betrouwbaar en gemakkelijk te onderhouden is.
Veelgestelde vragen (FAQ)
Hoeveel bestanden heeft een WordPress-thema minimaal nodig?
Een WordPress-thema vereist ten minste twee bestanden:style.css 和 index.php。style.css Het wordt gebruikt om thema-informatie en basisstijlen te bieden. index.php Als standaardtemplatefile wordt dit gebruikt om de inhoud van de website te weergeven.
Hoe voeg ik een aangepaste instellingspagina toe aan mijn thema?
Het is over het algemeen niet aan te raden om veel complexe instellingen rechtstreeks in het thema te toevoegen, omdat dit conflicten kan veroorzaken met plugins of toekomstige functies van het WordPress-core-systeem. Voor eenvoudige opties kun je de WordPress Customizer API gebruiken. Voor meer complexe vereisten is het beter om de betreffende functies in aparte plugins te implementeren. Als het echt nodig is om deze instellingen in het thema op te nemen, kun je dat wel doen. add_menu_page() 或 add_theme_page() Functies worden gecreëerd in samenwerking met de instellingen van de API.
Waarom is de lay-out van de website verstoord nadat ik het thema heb gewijzigd?
Dit gebeurt meestal omdat de plugins of menu's die waren geregistreerd in het vorige thema, geen plek meer hebben in het nieuwe thema. WordPress probeert deze instellingen te behouden. Controleer of je nieuw thema deze functies wel ondersteunt. functions.php De navigatieopties zijn correct geregistreerd (met behulp van)... register_nav_menus) en het gebied met kleine hulpmiddelen (te gebruiken) register_sidebarZorg ervoor dat de geregistreerde “ID” of “locatie” uniek is, en dat de juiste functies worden gebruikt in het templatebestand (bijvoorbeeld…). wp_nav_menuJe kunt ze oproepen met behulp van deze methoden.
Hoe maak ik mijn thema compatibel met subthema's?
Om je thema te ondersteunen met subthema's, moet je het zo modulair en flexibel mogelijk ontwikkelen. Vermeid het gebruik van harde gekoode paden in functies, en gebruik in plaats daarvan… get_template_directory_uri() 和 get_stylesheet_directory_uri() Zo'n functie. Voor modificeerbare functies wordt dit gebruikt. if ( ! function_exists( ‘…’ ) ) Kijk of het al is gedefinieerd. Het belangrijkste is om action-hooks te gebruiken (bijvoorbeeld)... after_setup_theme, wp_enqueue_scriptsOm functies te kunnen toevoegen, kan het thema eenvoudig worden verwijderd of gewijzigd, zodat deze ‘hooks’ (verbindingen of onderdelen van het thema) ook gemakkelijk kunnen worden verwijderd of aangepast.
Moet er een specifieke PHP-versie worden gebruikt bij het ontwikkelen van thema's?
Hoewel er geen absolute verplichting is, is het vanwege veiligheid, prestaties en compatibiliteit verstandig om de officiële vereisten van WordPress met betrekking tot de PHP-versie te volgen. Per 2026 wordt PHP 7.4 of een hogere versie aanbevolen voor het gebruik in het WordPress-core. Tijdens het ontwikkelen moet je gebruikmaken van een nieuwere PHP-versie en moet je in je code vermijden om afgekeurde (deprecated) functies te gebruiken. style.css Het is een goede gewoonte om in de documentatie aan te geven welke minimale PHP-versie vereist is voor het onderwerp dat je behandelt.
De volgende stap, wat moeten we als volgende doen?
Voor meer informatie en praktische kennis
De volgende content is relevant voor het onderwerp van dit artikel en is geschikt voor verder lezen. Het kan vaak effectief zijn om eerst het artikel te lezen dat het dichtst bij uw huidige vraagstuk staat en vervolgens geleidelijk aan artikelen over aanverwante onderwerpen te bekijken.
- WordPress-themaontwikkeling vanaf nul: creëer een unieke website-omgeving
- WordPress-themaontwikkelingsgids: Van nul een persoonlijke website bouwen
- Volledig handboek voor het ontwikkelen van WordPress-themes: een praktische handleiding van nul tot expertniveau
- Volledig handboek voor het ontwikkelen van WordPress-themes: van nul beginnen met het bouwen van professionele website-templates
- Praktische WordPress-themawijziging: van nul een responsieve, bedrijfsgerichte website bouwen