WordPress-Themes sind das Herzstück des Erscheinungsbilds und der Funktionalität einer Website. Das Erstellen eigener Themes ermöglicht nicht nur eine vollständig individuelle Gestaltung, sondern verhilft auch dazu, das Funkionieren von WordPress besser zu verstehen und die eigenen Entwicklungsfähigkeiten zu verbessern. In dieser Anleitung lernen Sie, Schritt für Schritt, wie Sie ein grundlegendes Theme erstellen, das den WordPress-Standards entspricht.
Aufbau der Entwicklungsumgebung und der Infrastruktur
Bevor Sie mit dem Schreiben des Codes beginnen, benötigen Sie eine geeignete lokale Entwicklungsumgebung. Sie können XAMPP, MAMP oder Desktop-Anwendungen wie Local by Flywheel verwenden. Stellen Sie sicher, dass in der Umgebung PHP, MySQL sowie Apache/Nginx installiert sind.
Erstellen Sie einen Themenverzeichnis und die zentralen Dateien.
Ein ganz grundlegendes WordPress-Theme benötigt nur zwei Dateien. Zunächst einmal befinden sich diese Dateien im Verzeichnis Ihrer WordPress-Installation.wp-content/themesIm Ordner erstellen Sie einen neuen Ordner, zum Beispiel…my-first-theme。
Empfohlene Lektüre Leitfaden für die Entwicklung von WordPress-Themen: Erstellen Sie von Grund auf personalisierte Webseiten。
In diesem Ordner erstellen Sie die erste Kerndatei:style.cssDieses Datei ist nicht nur eine Stylesheet, sondern enthält auch Metadaten zum Thema. Am Anfang der Datei muss ein Kommentar in der korrekten Formatierung vorhanden sein.
/*
Theme Name: My First Theme
Theme URI: https://example.com/my-first-theme
Author: Your Name
Author URI: https://example.com
Description: 这是一个用于学习的入门级WordPress主题。
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: my-first-theme
*/ Die zweite Kerndatei ist…index.phpDies ist die Standardvorlagendatei für das Thema. Wenn WordPress keine spezifischeren Vorlagen findet, wird diese verwendet. Ursprünglich konnte sie sehr einfach sein.
<!DOCTYPE html>
<html no numeric noise key 1010>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body no numeric noise key 1007>
<header>
<h1><a href="/de/</?php echo esc_url( home_url( '/' ) ); ?>"></a></h1>
<p></p>
</header>
<main>
</main>
<footer>
<p>©</p>
</footer>
</body>
</html> Jetzt kann Ihr Thema in der WordPress-Backend-Übersicht “Erscheinungsbild” -> “Themen” angezeigt und aktiviert werden.
Die zentralen Vorlagendateien und die Vorlagenhierarchie
WordPress verwendet ein System von Regeln, das als “Template Hierarchy” (Template-Hierarchie) bezeichnet wird, um zu entscheiden, welches Template-File für eine bestimmte Seite verwendet werden soll. Das Verständnis dieser Hierarchie ist entscheidend für die Entwicklung von Themes.
Artikel und Seitenvorlagen
Wenn man auf einen einzelnen Artikel zugreift, sucht WordPress zunächst nach…single.phpFalls es nicht existiert, kehrt man zurück zu…index.phpSie können etwas erstellen.single.phpSie können die Anzeige der einzelnen Artikelseiten anpassen.
Empfohlene Lektüre Einführung in die Entwicklung von WordPress-Themen: Erstelle von Grund auf dein eigenes Website-Theme。
<article id="post-<?php the_ID(); ?>" no numeric noise key 1007>
<header class="entry-header">
<h1 class="entry-title"></h1>
<div class="entry-meta">
发布于: | 作者:
</div>
</header>
<div class="entry-content">
</div>
<footer class="entry-footer">
<?php the_tags( '标签:', ', ', '<br />' ); ?>
</footer>
</article> Für separate Seiten sucht WordPress nach…page.phpSie können auch Vorlagen für bestimmte Seiten-IDs oder Seiten-Alias erstellen, zum Beispiel:page-about.phpDies wird speziell für die “Über”-Seiten verwendet.
Archiv- und Startseite-Vorlagen
Die Seite zur Anzeige der Blogartikelliste (z. B. nach Kategorien, Tags oder Autorenarchiven) verwendet…archive.phpSie können dies verwenden.is_category()、is_tag()Bedingungsschaltflächen („Condition Tags“) werden intern unterschieden.
Die Startseite der Website wird standardmäßig von…index.phpKontrolle – aber du kannst etwas erstellen.front-page.phpUm eine statische Startseite zu definieren oder zu erstellen…home.phpHier wird die Darstellung der Startseite eines Blogs definiert, die die neuesten Artikel anzeigt.
Themenfunktionen und Hook-Mechanismen
Die Flexibilität und Erweiterbarkeit von WordPress verdanken sich in hohem Maße seinem Hook-System, das sowohl Aktionen (Actions) als auch Filter (Filters) umfasst. Themes nutzen diese Mechanismen, um Funktionen nach ihren eigenen Bedürfnissen anzupassen oder zu erweitern.functions.phpDateien werden verwendet, um dieses System zu nutzen.
Themeninitialisierung und Funktionsunterstützung
functions.phpDie Dateien dienen dazu, Funktionen wie das Hinzufügen von Themen, das Erstellen von Registrierungsmenüs sowie die Gestaltung von Seitenrändern zu implementieren. In der Regel wird dazu…after_setup_themeDieser Aktionshook initiiert die grundlegenden Funktionen des Themes.
<?php
function my_theme_setup() {
// 让WordPress管理文档标题
add_theme_support( 'title-tag' );
// 启用文章和页面的特色图像功能
add_theme_support( 'post-thumbnails' );
// 启用HTML5标记支持
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
// 注册一个导航菜单
register_nav_menus( array(
'primary' => __( '主导航菜单', 'my-first-theme' ),
) );
}
add_action( 'after_setup_theme', 'my_theme_setup' ); Registrierungsbereich für kleine Hilfsprogramme
Auch Bereiche für Widgets wie die Seitenleiste oder der Fußbereich müssen berücksichtigt werden.functions.phpRegistrieren Sie sich und nutzen Sie es.widgets_initHaken.
Empfohlene Lektüre Eine vollständige Anleitung zur Entwicklung von WordPress-Themen: Ein praktisches Tutorial vom Anfänger bis zum Experten.。
function my_theme_widgets_init() {
register_sidebar( array(
'name' => __( '主侧边栏', 'my-first-theme' ),
'id' => 'sidebar-1',
'description' => __( '在此添加小工具。', '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>',
) );
}
add_action( 'widgets_init', 'my_theme_widgets_init' ); Nach der Registrierung können Sie Vorlagendateien (z. B. ) verwenden.sidebar.php), die in derdynamic_sidebar( 'sidebar-1' )Es ist an der Zeit, diese Region aufzurufen.
Template Components and Loop Optimization
Um den Code sauber und wiederverwendbar zu halten, empfiehlt WordPress, wiederholte Teile der Templates (wie Kopfzeile, Fußzeile, Seitenspalten) in separate Dateien aufzuteilen.
Aufteilen von Template-Teilen
Erstellenheader.php、footer.phpundsidebar.phpDatei.index.phpFühren Sie den entsprechenden Codeausschnitt dorthin um, wo er hingehört. Anschließend verwenden Sie den Code an seiner ursprünglichen Stelle.get_header()、get_footer()undget_sidebar()Funktionen werden verwendet, um sie zu enthalten.
Fortgeschrittene Verarbeitung von Artikellisten (Artikelzirkulation)
Grundlegende Verwendung von Schleifenwhile ( have_posts() ) : the_post(); ... endwhile;Aber auf der Archivseite musst du in der Regel nur einen Artikelzusammenfassung anzeigen und nicht den vollen Text. Dafür kannst du folgende Methoden verwenden:the_excerpt()Funktion.
Um die Ausführung von Schleifen – insbesondere bei benutzerdefinierten Abfragen – besser kontrollieren zu können, ist es wichtig, folgende Aspekte zu verstehen:WP_QueryKlassen. Zum Beispiel werden auf der Startseite nur Artikel aus einer bestimmten Kategorie angezeigt:
<?php
$custom_query = new WP_Query( array(
'category_name' => 'featured',
'posts_per_page' => 3,
) );
if ( $custom_query->have_posts() ) :
while ( $custom_query->have_posts() ) : $custom_query->the_post();
// 显示文章内容
endwhile;
wp_reset_postdata(); // 重置主查询数据
endif;
?> Denken Sie daran: Nachdem Sie eine benutzerdefinierte Abfrage durchgeführt haben, verwenden Sie…wp_reset_postdata()Um die globale Einstellung wiederherzustellen…$postVariablen sind von entscheidender Bedeutung – andernfalls kann dies die ordnungsgemäße Anzeige späterer Template-Bereiche (z. B. der Seitenleiste) beeinträchtigen.
Zusammenfassungen
Seit der Erstellung…style.cssundindex.phpVom Anfang an – bis zum Verständnis der Struktur der Vorlagen sowie deren effektiven Nutzung.functions.phpDu hast einen grundlegenden, aber vollständigen Entwicklungsprozess für ein WordPress-Theme abgeschlossen – indem du neue Funktionen hinzugefügt, Template-Teile aufgeteilt und Schleifen optimiert hast. Der Schlüssel dazu ist es, die Standards und Konventionen von WordPress einzuhalten, da dies eine gute Kompatibilität und eine einfache Wartbarkeit deines Themes gewährleistet. Im nächsten Schritt kannst du versuchen, den Artikeln um umfangreichere Metadaten zu ergänzen, benutzerdefinierte Artikeltypen zu integrieren oder Vorverarbeitungssprachen wie Sass verwenden, um die Styles deines Themes zu verwalten und es somit noch professioneller und leistungsfähiger zu machen.
FAQ Häufig gestellte Fragen
Muss man PHP beherrschen, um eine WordPress-Theme zu entwickeln?
Ja, PHP ist die Kernprogrammiersprache von WordPress. Die Template-Dateien der Themes (Dateien mit der Endung .php) verwenden hauptsächlich PHP, um dynamisch HTML-Inhalt zu generieren, WordPress-Funktionen aufzurufen und Daten zu verarbeiten. Selbst wenn man einen Page Builder verwendet, ist das Verständnis von PHP unerlässlich, um tiefe Anpassungen vorzunehmen und Probleme zu lösen.
Was ist die Funktion der functions.php-Datei des Themas?
functions.phpEs handelt sich um das “Feature Center” Ihres Themes. Es dient dazu, Funktionen des Themes zu aktivieren (z. B. Menüs, Thumbnails), die Registrierungszone für Widgets sowie das Navigationsmenü, das sequenzielle Laden von Skripten und Styles zu steuern, benutzerdefinierte Funktionen zu definieren und das Standardverhalten von WordPress mithilfe von Hooks (Actions und Filters) zu ändern. Es wird automatisch beim Initialisieren des Themes geladen.
Wie kann ich mein Thema für mehrsprachige Übersetzungen optimieren?
Sie müssen zwei Dinge erledigen. Zunächst müssen Sie die Übersetzungsfunktionen von WordPress umsetzen – das heißt, Sie müssen alle Zeichenketten, die übersetzt werden sollen, mit den entsprechenden Funktionen von WordPress umgeben. Zum Beispiel:__( ‘文本’, ‘my-theme-textdomain’ )oder_e( ‘文本’, ‘my-theme-textdomain’ )Und in…style.cssundfunctions.phpZuerst muss der Textdomain korrekt eingestellt werden. Anschließend sollte man mit Tools wie Poedit eine .pot-Datei erstellen und daraus die entsprechenden .mo-Dateien für die jeweilige Sprache generieren. Diese .mo-Dateien sollten dann in das Thema-Verzeichnis des Themes eingefügt werden./languagesIm Verzeichnis.
Wie führt man CSS- und JavaScript-Dateien korrekt in der Themenentwicklung ein?
Verwenden Sie auf keinen Fall direkt in der Template-Datei Elemente oder Tags. Die korrekte Vorgehensweise besteht darin, diese über bestimmte Mechanismen oder Funktionen einzubinden.wp_enqueue_style()undwp_enqueue_script()Funktion und verbinden diese Aufrufe mit derwp_enqueue_scriptsDieser Action-Hook sorgt dafür, dass die Abhängigkeiten korrekt erfüllt werden, doppelte Ladungen verhindert werden und die Funktionalität mit WordPress’ Skriptverwaltungssystem kompatibel ist.
PHP
function my_theme_scripts() {
wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
wp_enqueue_script( 'my-theme-navigation', get_template_directory_uri() . 'https://www.likacloud.com/js/navigation.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );
Was kommt als Nächstes, was kommt als Nächstes?
Erweiterte Lektüre und praktische Kenntnisse
Die folgenden Artikel stehen im Zusammenhang mit dem Thema dieses Artikels und eignen sich für eine vertiefte Lektüre. Oft ist es besser, mit dem Artikel zu beginnen, der Ihrem aktuellen Problem am nächsten kommt, und dann nach und nach die umliegenden Themen zu behandeln.
- Komplete Lösung für die Website-Erstellung – Eine umfassende Anleitung zur Umsetzung von der Grundlage bis zur Live-Veröffentlichung
- Vorwort: Warum die Entwicklung mit WordPress?
- Wie Sie Ihr eigenes WordPress-Theme auswählen und anpassen: Ein vollständiger Leitfaden für Anfänger und Experten
- Das ultimative Handbuch für Website-Entwicklung: Der vollständige Prozess, um professionelle Webseiten von Grund auf zu erstellen
- Wie wählt und passt man ein perfektes WordPress-Theme für sich selbst aus?