De kerncomponenten van een WordPress-thema zijn:
Een standaard WordPress-thema bestaat uit een reeks specifieke bestanden die samen het uiterlijk en de functionaliteiten van de website bepalen. De meest fundamentele en essentiële bestanden zijn…style.css和index.phpDaarvan zijn erstyle.cssHet is niet alleen een stylesheet voor het thema, maar vormt ook een soort “identiteitsbewijs” van het thema. De commentaren in het begin van het bestand bevatten belangrijke meta-informatie over het thema, zoals de naam, de auteur, een beschrijving en de versie.
Naast deze twee kernbestanden bevat een modern thema met alle functies meestal ook andere templatebestanden.header.phpVerantwoordelijk voor het genereren van de header (bovenste deel) van de website.footer.phpDefinieer de voetnoot.sidebar.phpBeheer de weergave van de zijbalk. Dit wordt gebruikt om één artikel te tonen.single.phpDe lijst met artikelen wordt weergegeven.archive.phpEn de weergave van de pagina...page.phpAlles is een belangrijk onderdeel van de logische structuur van de weergave van het thema-inhoud.
Daarnaast Ik ben hier om je te helpen met je huiswerk. Aanbevolen leesmateriaal In de huidige, zeer concurrerende online wereld is een goed ontworpen en presterende Word-document van groot belang.。 Subject: Hierbij wordt de term “Text Domain” gebruikt voor internationalisering; dit is een identificator die wordt gebruikt bij de latere vertaling van teksten, en deze identificator is meestal gelijk aan de naam van de themapagina. Deze code gebruikt hooks. WordPress gebruikt een intelligents systeem genaamd “Template Hierarchy” om te bepalen hoe verschillende soorten pagina’s worden weergegeven. Wanneer een gebruiker een pagina bezoekt, zoekt WordPress naar het corresponderende template-bestand volgens een bepaalde prioriteitsvolgorde. Voor een artikel dat is gemarkeerd als “News” zal WordPress op de volgende manier kijken naar de beschikbare templates: Aanbevolen leesmateriaal WordPress-themaontwikkeling voor beginners: bouw je eigen, aangepaste website vanaf nul。 Naast de door het systeem voorgeschreven templates, kunnen ontwikkelaars ook “pagina templates” maken. Dit zijn aangepaste templates die zijn ontworpen voor een specifieke pagina of een groep pagina's. Om een pagina template te maken, moet dit in de commentaren aan het begin van het template-bestand duidelijk worden aangegeven. Als je bijvoorbeeld een pagina-template met een volledige breedte wilt maken, kun je een nieuw bestand aanmaken met de naam… Daarna kun je, wanneer je de WordPress-beheerpagina bewerkt, in het drop-down-menu “Template” onder “Pagina-eigenschappen” de optie “Volledig breedte-pagina-indeling” zien en kiezen. Dit biedt veel flexibiliteit bij het weergeven van content, zodat je geen core-bestanden van het thema hoeft aan te passen om specifieke lay-outwensen te realiseren. In templatebestanden is het vaak nodig om afhankelijk van verschillende condities verschillende inhoud te weergeven. Hiervoor worden de conditionele tags van WordPress gebruikt. Bijvoorbeeld: Andere veelgebruikte conditionele tags zijn: Om de stabiliteit en prestaties van het thema te garanderen, moeten alle JavaScript- en CSS-bestanden worden geladen in een bepaalde volgorde, met behulp van de methoden die WordPress biedt, in plaats van ze rechtstreeks in de template-bestanden te gebruiken. Aanbevolen leesmateriaal Focussen op de praktijk: van nul naar een: ontdek de essentiële technieken voor het ontwikkelen van moderne WordPress-themes。 Gebruik In het bovenstaande voorbeeld: Soms is het nodig om op basis van PHP-logica dynamisch CSS of JavaScript te genereren. Hiervoor kan je gebruikmaken van… De WordPress Theme Customizer biedt een realtime-previewscherm dat gebruikers (beheerders) in staat stelt om bepaalde instellingen van het thema aan te passen, zoals kleuren, het logo en de achtergrondafbeelding. Met de Theme Customizer API kunnen ontwikkelaars veilig nieuwe, configurabele opties toevoegen aan het thema. Allereerst is het nodig om… Nadat de instellingen zijn toegevoegd, moet deze waarde worden weergegeven op de front-end van het thema. Meestal gebeurt dit op de pagina waar de gebruiker de instellingen kan bewerken of waar de inhoud wordt weergegeven. Op deze manier zijn de functionaliteiten en het uiterlijk van het thema zeer goed te configureren, terwijl de code toch netjes en veilig blijft. Het ontwikkelen van een WordPress-thema is een systeematische klus die een diepe verstanding vereist van de structuur van de templates, de kernfuncties van WordPress, het beheer van resources en de mogelijkheden van de aangepaste API's. Het begint met het bouwen van de basis van het thema... Een zeer basist thema dat door WordPress wordt herkend, vereist in ieder geval twee bestanden: Subthema's erfen alle functies en stijlen van het overkoepelende thema, maar bieden ontwikkelaars de mogelijkheid om deze te overschrijven en aan te passen zonder de bestanden van het overkoepelende thema te hoeven te bewerken. Dit maakt het gemakkelijk om na een update van het overkoepelende thema de eigen aanpassingen te behouden. Om een subthema te creeren, hoef je alleen maar… Controleer je pagina-templatebestand (bijvoorbeeld…) Dit wordt voornamelijk gerealiseerd door “internationalisering (i18n)” en “localisering (l10n)”. Allereerst… 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.functions.phpDe bestanden vormen het kernonderdeel van de functionaliteit van een thema. Het gaat niet om een template-bestand, maar om een PHP-bestand dat automatisch wordt geladen wanneer het thema wordt geïnstalleerd. Ontwikkelaars kunnen hier functies toevoegen die het thema ondersteunen, menu's en sidebar's registreren, scripts en styleheets laden, en verschillende custom-functies definiëren.functions.php</code,主题的功能得以无限扩展。Headerinformatie van het thema-stylesheet
style.cssDe bestandskop moet een commentaar bevatten in een specifieke formatie. WordPress gebruikt deze informatie om het thema in de achtergrond te herkennen en weergeven./*
Theme Name: My Awesome Theme
Theme URI: https://example.com/my-awesome-theme/
Author: Your Name
Author URI: https://example.com/
Description: A modern, responsive WordPress theme built for speed and SEO.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-awesome-theme
*/Voorkomende handelingen met themafunctiebestanden
functions.phpDe file is het “brein” van het onderwerp. Een veel voorkomende actie is het gebruik…add_theme_support()Deze functie wordt gebruikt om de door het thema ondersteunde mogelijkheden aan te geven. Denk hierbij aan het activeren van speciale afbeeldingen voor artikelen, het instellen van een eigen logo of een persoonlijke achtergrond.<?php
function my_awesome_theme_setup() {
// 添加对文章特色图片的支持
add_theme_support( 'post-thumbnails' );
// 添加对自定义Logo的支持
add_theme_support( 'custom-logo' );
// 添加对HTML5标记的支持
add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) );
// 添加对标题标签的支持
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'my_awesome_theme_setup' );
?>after_setup_themeDeze functie wordt uitgevoerd nadat het thema is geladen, waarna meerdere kernfuncties van WordPress veilig worden geactiveerd.Template-levels en custom templates
single-post-news.php -> single-post.php -> single.php -> singular.php -> index.phpOntwikkelaars kunnen deze regels gebruiken om door het maken van templatebestanden met specifieke namen een gedetailleerde controle over de pagina's te realiseren.Een custom page template maken
template-fullwidth.phpDe bestand, en voeg aan het begin van de bestand de volgende commentaar toe:<?php
/**
* Template Name: 全宽度页面布局
* Description: 一个没有侧边栏的全宽度页面模板
*/
?>Het gebruik van conditionele tags voor logische controle
index.phpEr kunnen conditionele tags worden gebruikt om te bepalen of het een pagina met een lijst van artikelen is of een pagina met één artikel. Hoewel dit meestal door specifiekere templatebestanden wordt geregeld.<?php if ( is_home() && ! is_front_page() ) : ?>
<h1>Lijst met blogartikelen</h1>
<?php elseif ( is_search() ) : ?>
<h1>搜索结果:</h1>
<?php endif; ?>is_single()、is_page()、is_category()、is_archive()Etcetera; dit zijn de fundamenten voor het bouwen van dynamische, intelligente thema's.Script- en stijlbeheer voor thema's
或Tag. Dit is gerealiseerd door…functions.phpDe Chinese versie van dit bericht is niet beschikbaar.wp_enqueue_scriptsHet wordt gerealiseerd met behulp van een hook.De resources worden correct geregistreerd en in de juiste volgorde opgesteld voor gebruik.
wp_register_script()和wp_enqueue_script()(Script) of het corresponderendewp_register_style()和wp_enqueue_style()Deze functies bieden WordPress de mogelijkheid om afhankelijkheden en versies centraal te beheren, waardoor het voorkomen van dubbele laden van bestanden wordt voorkomen.<?php
function my_awesome_theme_scripts() {
// 注册并排队主样式表(style.css)
wp_enqueue_style( 'my-awesome-theme-style', get_stylesheet_uri(), array(), wp_get_theme()->get('Version') );
// 注册一个自定义JavaScript文件
wp_register_script( 'my-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array('jquery'), '1.0.0', true );
// 排队这个脚本(仅在需要时)
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
add_action( 'wp_enqueue_scripts', 'my_awesome_theme_scripts' );
?>get_stylesheet_uri()Haal de huidige thema informatie op.style.cssPadget_template_directory_uri()Haal de URI van de themadirectory. Zet de laatste parameter van het script op…trueDit betekent dat de inhoud in de voetnoot wordt geladen, waardoor de snelheid van het laden van de pagina wordt verbeterd.Inline-stijlen of scripts toevoegen
wp_add_inline_style()和wp_add_inline_script()Functies mogen alleen worden gebruikt als ze zijn gebonden aan een beschikbare, gereserveerde resource.<?php
function my_dynamic_css() {
$custom_css = "
.site-header {
background-color: #" . get_theme_mod('header_bg_color', 'ffffff') . ";
}
";
wp_add_inline_style( 'my-awesome-theme-style', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'my_dynamic_css' );
?>Theme Customizer en Customizable Features
Voeg een instelling toe in de customizer.
functions.phpGebruikt in het Chinees (vereenvoudigd)customize_registerHooken worden gebruikt om instellingen, controlelementen en gebieden te registreren.<?php
function my_awesome_theme_customize_register( $wp_customize ) {
// 添加一个“颜色”板块
$wp_customize->add_section( 'theme_colors', array(
'title' => __( '主题颜色', 'my-awesome-theme' ),
'priority' => 30,
) );
// 添加一个“链接颜色”设置
$wp_customize->add_setting( 'link_color', array(
'default' => '#0073aa',
'sanitize_callback' => 'sanitize_hex_color',
'transport' => 'postMessage', // 支持实时预览
) );
// 为该设置添加一个颜色选择器控件
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array(
'label' => __( '链接颜色', 'my-awesome-theme' ),
'section' => 'theme_colors',
'settings' => 'link_color',
) ) );
}
add_action( 'customize_register', 'my_awesome_theme_customize_register' );
?>U kunt uw eigen instellingen weergeven in het onderwerp.
style.cssOf via...wp_add_inline_style()In de toegevoegde dynamische CSS wordt gebruik gemaakt van…get_theme_mod()De functie haalt de waarde op.<?php
function output_customizer_css() {
$link_color = get_theme_mod( 'link_color', '#0073aa' ); // 第二个参数为默认值
if ( $link_color !== '#0073aa' ) {
$css = "
a { color: {$link_color}; }
a:hover { color: " . adjust_color( $link_color, -50 ) . "; }
";
wp_add_inline_style( 'my-awesome-theme-style', $css );
}
}
add_action( 'wp_enqueue_scripts', 'output_customizer_css' );
?>Samenvatting
style.css和index.phpWe beginnen met het maken van specifieke templatebestanden om de weergave van verschillende pagina's te beheersen.functions.phpHet uitbreiden van de mogelijkheden van een thema, en het beheersen van scripts en stijlen in overeenstemming met de WordPress-standaarden, vormt de basis voor het creeren van een sterke en efficiënte thema. Daarnaast kan het integreren van de thema-customizer-API een gebruikervriendelijke, realtime mogelijkheid voor aanpassingen bieden. Het beheersen van deze kernconcepten en -vaardigheden is essentieel om een professionele WordPress-themaprogrammeur te worden.Veelgestelde vragen (FAQ)
Een basisWordPress-thema vereist in ieder geval de volgende bestanden:
style.css和index.php。style.cssDe kop moet de juiste metagegevens over het onderwerp bevatten.index.phpDit is het laatste terugkeringsbestand (‘rollback file’) in de template-hierarchie, en wordt gebruikt om de meest basistische inhoud af te drukken.Wat is het verschil tussen een subthema en een hoofdthema? Hoe worden ze gecreëerd?
/wp-content/themes/Maak een nieuwe map in de map en creeer daarin ook een bestand.style.cssHet bestand moet in zijn header-commentaar de volgende informatie bevatten:Template:Hier wordt de naam van de map met het overkoepelde thema (het 'parent theme') opgegeven.Waarom wordt mijn eigen paginemodel niet weergegeven in de drop-down-lijst in de backend?
my-template.phpDe bestand moet zich bevinden in de rootmap van het thema, en de commentaarblock aan het begin van het bestand moet in het juiste format zijn opgesteld. In het commentaarblock moet informatie worden opgenomen.Template Name:Deze regel moet precies zo staan, gevolgd door de naam van je template. Een foutieve ruimte of het ontbreken van een komma kan ervoor zorgen dat WordPress de template niet herkent.Hoe zorg ik ervoor dat mijn thema ondersteunt wordt bij meertalige vertalingen?
style.cssDe “Text Domain” enfunctions.php的load_theme_textdomain()Tijdens de oproep wordt een consistent thema-textveld gebruikt. Vervolgens worden op alle plaatsen waar tekst moet worden vertaald, de corresponderende vertalingen toegepast.__()、_e()Deze vertaalfuncties worden vervolgens verpakt in een speciale laag (wrapper). Ten slotte wordt met hulpmiddelen als Poedit een eindresultaat gecreëerd..potTemplatebestanden, en maak de corresponderende versies in de gewenste talen..po和.moDe bestanden zijn opgeslagen onder het thema./languages/In de catalogus.De volgende stap, wat moeten we als volgende doen?
Voor meer informatie en praktische kennis