Blog
Hogyan építsünk egyedi WordPress blokktémát a theme.json segítségével: Lépésről lépésre útmutató
Tanulja meg, hogyan hozhat létre blokktémát a semmiből a theme.json segítségével a globális stílusok, beállítások és sablonok vezérlésére.
Összefoglaló
Egyedi WordPress blokktéma építése a teljes hely szerkesztéssel (Full Site Editing, FSE) ijesztő lehet, de a theme.json leegyszerűsíti a folyamatot. Ez az útmutató végigvezeti Önt egy minimális blokktéma beállításán, a globális stílusok (például színek és tipográfia) meghatározásán a theme.json-ban, valamint egyedi sablonok létrehozásán blokk jelölőnyelv segítségével. Megtanulja, hogyan adhat hozzá blokkmintákat és stílusváltozatokat, lehetővé téve egy teljesen tervezhető webhely létrehozását PHP sablonfájlok nélkül. Kitérünk a gyakori hibákra, mint a klasszikus és blokktéma funkciók keverése, és bemutatjuk, hogyan tesztelheti a témáját. A végére egy modern, bővíthető blokktémája lesz, készen a éles használatra. Ez a megközelítés kihasználja a WordPress legújabb képességeit a gyorsabb, vizuálisabb fejlesztés érdekében.
Bevezetés
A teljes hely szerkesztés (FSE) forradalmasította a WordPress témafejlesztést, lehetővé téve, hogy vizuálisan tervezze meg webhelye minden részét. Sok fejlesztő azonban továbbra is klasszikus témákra támaszkodik, vagy küzd a blokktémák létrehozásával a semmiből. Az FSE erejének kulcsa a theme.json – egy konfigurációs fájl, amely vezérli a globális stílusokat, beállításokat és sablonokat. Ez a cikk gyakorlati, lépésről lépésre útmutatót nyújt egyedi blokktéma építéséhez a theme.json segítségével. Megtanulja, hogyan állítsa be a mappastruktúrát, határozza meg a színpalettákat és tipográfiai előbeállításokat, hozzon létre egyedi sablonokat blokk jelölőnyelvvel, és adjon hozzá stílusváltozatokat. A végére egy éles használatra kész blokktémája lesz, amely könnyen karbantartható és bővíthető. Merüljünk el, és tegyük érthetővé az FSE fejlesztést.
Az FSE jövőbeli hatásának szélesebb körű áttekintéséért nézze meg a Gutenberg FSE: A WordPress design jövője 2026-ban című cikket.
1. Minimális blokktéma beállítása
Egy blokktémához legalább két fájl szükséges: style.css és index.html. Hozzuk létre őket.
Mappastruktúra
Hozzon létre egy my-block-theme nevű mappát a wp-content/themes/ könyvtárban. Helyezze el benne:
style.cssindex.html- (opcionális)
theme.json
style.css
Bár a blokktémák kevésbé támaszkodnak CSS-re, a style.css továbbra is szükséges a téma azonosításához:
/*
Theme Name: My Block Theme
Theme URI: https://example.com
Author: Your Name
Description: A custom block theme built with theme.json.
Version: 1.0
Requires at least: 5.9
Tested up to: 6.5
Requires PHP: 7.4
License: GPL v2 or later
Text Domain: my-block-theme
*/
A Requires at least: 5.9 sor biztosítja, hogy a téma együttműködjön az FSE funkcióval.
index.html
Ez a tartalék sablon. Blokk jelölőnyelvvel kell kezdődnie. Hozzon létre egy egyszerű elrendezést:
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
<!-- wp:group {"layout":{"type":"constrained"}} -->
<div class="wp-block-group">
<!-- wp:post-title /-->
<!-- wp:post-content /-->
</div>
<!-- /wp:group -->
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
Ez blokk szintaxist használ a fejléc és lábléc sablonrészek beillesztésére, valamint a bejegyzés címének és tartalmának megjelenítésére.
Figyelmeztetés: A blokktémák nem tartalmazhatnak PHP sablonfájlokat, mint a
header.phpvagyfooter.php. A klasszikus és blokk sablonok keverése megtöri az FSE-t.
A téma aktiválása
Töltse fel a mappát FTP-n vagy zip telepítéssel, és aktiválja. Látnia kell egy üres webhelyet a minimális szerkezettel. Következő lépésként stílust adunk neki a theme.json segítségével.
2. A theme.json elsajátítása: Globális stílusok és beállítások
A theme.json központosítja az összes tervezési vezérlést. A téma mappájának gyökerében található. Hozzunk létre egyet szín- és tipográfiai beállításokkal.
Alapszerkezet
{
"version": 2,
"settings": {
"color": {
"palette": [
{
"slug": "primary",
"color": "#007cba",
"name": "Primary"
},
{
"slug": "secondary",
"color": "#005a87",
"name": "Secondary"
},
{
"slug": "background",
"color": "#ffffff",
"name": "Background"
}
],
"gradients": []
},
"typography": {
"fontFamilies": [
{
"fontFamily": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
"slug": "system",
"name": "System"
},
{
"fontFamily": "'Georgia', serif",
"slug": "serif",
"name": "Serif"
}
],
"fontSizes": [
{
"slug": "small",
"size": "14px",
"name": "Small"
},
{
"slug": "medium",
"size": "18px",
"name": "Medium"
},
{
"slug": "large",
"size": "24px",
"name": "Large"
}
]
},
"spacing": {
"padding": true,
"margin": true,
"units": ["px", "em", "rem"]
}
},
"styles": {
"color": {
"background": "var(--wp--preset--color--background)",
"text": "var(--wp--preset--color--primary)"
},
"typography": {
"fontFamily": "var(--wp--preset--font-family--system)",
"fontSize": "var(--wp--preset--font-size--medium)"
}
}
}
Ez meghatároz egy színpalettát, betűcsaládokat, betűméreteket és globális stílusokat. A var() függvények a WordPress által automatikusan generált CSS egyéni tulajdonságokra hivatkoznak. A felhasználók ezeket a Hely szerkesztőben módosíthatják.
Tipp: Használjon CSS egyéni tulajdonságokat a konzisztencia érdekében. Kerülje az értékek keménykódolását CSS-fájlokban; a
theme.jsonlegyen az egyetlen forrás.
3. Egyedi sablonok létrehozása
A blokksablonok HTML fájlok blokk jelölőnyelvvel. Hierarchiájuk hasonló a klasszikus sablonfájlokéhoz. Például hozza létre a single.html fájlt egyedi bejegyzésekhez:
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"}} -->
<main class="wp-block-group">
<!-- wp:post-title {"level":1} /-->
<!-- wp:post-featured-image /-->
<!-- wp:post-content /-->
<!-- wp:post-navigation-link {"type":"previous"} /-->
<!-- wp:post-navigation-link {"type":"next"} /-->
</main>
<!-- /wp:group -->
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
Hasonlóan hozza létre a page.html, archive.html stb. fájlokat. Egyedi sablonokat is létrehozhat egy wp:post-template blokk hozzáadásával egy lekérdezési ciklusban.
Haladó testreszabáshoz fontolja meg egyedi blokkok építését. Tudja meg, hogyan a Túl az alapblokkokon: Egyedi Gutenberg blokkok készítése a WordPress funkcióinak bővítéséhez című cikkben.
Sablonrészek
Hozzon létre egy parts/ mappát az újrafelhasználható részek számára. Például header.html:
<!-- wp:group {"tagName":"header","layout":{"type":"flex","flexWrap":"nowrap"}} -->
<header class="wp-block-group">
<!-- wp:site-logo /-->
<!-- wp:navigation {"themeLocation":"primary"} /-->
</header>
<!-- /wp:group -->
És footer.html:
<!-- wp:paragraph {"align":"center"} -->
<p class="has-text-align-center">© 2025 My Site</p>
<!-- /wp:paragraph -->
4. Blokkminták és stílusváltozatok hozzáadása
A blokkminták előre megtervezett elrendezések. Határozza meg őket egy patterns/ mappában. Hozza létre a patterns/hero.php fájlt:
<?php
/**
* Title: Hero
* Slug: my-block-theme/hero
* Categories: hero
*/
?>
<!-- wp:cover {"overlayColor":"primary","minHeight":50,"align":"full"} -->
<div class="wp-block-cover alignfull" style="min-height:50vh">
<span aria-hidden="true" class="wp-block-cover__background has-primary-background-color"></span>
<div class="wp-block-cover__inner-container">
<!-- wp:heading {"textAlign":"center","level":1,"style":{"color":{"text":"#ffffff"}}} -->
<h1 class="has-text-align-center has-text-color" style="color:#ffffff">Welcome</h1>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","textColor":"white"} -->
<p class="has-text-align-center has-white-color">This is a custom hero section</p>
<!-- /wp:paragraph -->
</div>
</div>
<!-- /wp:cover -->
A stílusváltozatok lehetővé teszik a felhasználók számára, hogy teljes megjelenést váltsanak. Hozza létre a styles/default.json és styles/dark.json fájlokat, amelyek felülírják a téma beállításait.
5. Figyelmeztetések és legjobb gyakorlatok
- Teljesítmény: A
theme.jsongyorsítótárazva van. Változtatások után törölje a gyorsítótárat. Szükség esetén használja awp_register_theme_jsonhookot. - Visszafelé kompatibilitás: A blokktémák csak WordPress 5.9-től működnek. Ha webhelyének támogatnia kell a régebbi verziókat, fontolja meg a hibrid megközelítést, de kerülje a sablonfájlok keverését.
- Gyermektémák: A blokktémák szülőtémaként használhatók klasszikus gyermektémákhoz, de fordítva nem. Használja a
templatekulcsot astyle.css-ben a szülő blokktéma deklarálásához. - Nemzetköziesítés: Használja a
__()függvényt a PHP sablonrészekben a lefordítható karakterláncokhoz. Blokk jelölőnyelvben adja meg a szövegtartományt atextDomainattribútum segítségével.
További információ a beépülő modul fejlesztésének legjobb gyakorlatairól: Robusztus WordPress beépülő modulok építése: Gyakorlati útmutató a legjobb gyakorlatokhoz.
Következtetés
Egyedi blokktéma építése a theme.json segítségével lehetővé teszi, hogy teljesen tervezhető webhelyet hozzon létre PHP érintése nélkül. Az útmutató követésével beállított egy minimális témát, meghatározta a globális stílusokat, létrehozott egyedi sablonokat és hozzáadott mintákat. Ne felejtse el alaposan tesztelni, különösen a peremfeltételek esetén, mint az archív oldalak vagy egyéni bejegyzéstípusok. Ahogy a WordPress fejlődik, a blokktémák lesznek a szabvány. Kezdje el már ma kihasználni az FSE-t a munkafolyamat egyszerűsítésére és az ügyfelek számára páratlan rugalmasság biztosítására.
Ha még tovább szeretné gyorsítani a téma létrehozását, fontoljon meg egy olyan eszközt, amely egy leírás alapján generál egy teljes webhelyet. Például leírhatja a kívánt elrendezést, és percek alatt kap egy készen használható blokktémát.
Készen áll, hogy élesben is használja blokktémáját? Egy egyszerű szöveges leírással generálhat egy teljesen funkcionális céloldalt vagy webhelyet – kód nélkül.
Sources (5)
- WordPress Architecture: A Complete Guide - Liquid Web
- Essential WordPress Plugin Development Best Practices - Pixel Fish
- WordPress Full Site Editing (FSE) – A Complete Guide | WebOptimo
- Best Practices – Plugin Handbook - WordPress Developer Resources
- The Complete Guide to WordPress REST API Basics - Kinsta
