Zum Inhalt

Erste Schritte

Vom fertigen Paket zur einsatzbereiten Seite in fünf Schritten.

Voraussetzungen

Was Mindestens
WordPress 6.7
PHP 8.2

Getestet ist TWtheme bis WordPress 7.0. Ein Block-Theme setzt einen aktuellen Site-Editor voraus — auf älteren Installationen fehlen Funktionen, die die Templates verwenden.

1. Theme installieren

Die Auslieferung besteht aus mehreren ZIP-Dateien:

Paket Inhalt Wann
twtheme-<version>.zip das Theme ohne Icon-Bibliotheken, rund 3 MB bei der Installation und bei jedem Update
twtheme-icons-<bibliothek>-<version>.zip eine Icon-Bibliothek, etwa solid oder brands nur wenn das Modul Icons gebraucht wird

Installiert wird unter Design → Themes → Theme hinzufügen → Theme hochladen. Das Kernpaket zuerst.

Die Icons sind absichtlich getrennt, und zwar je Bibliothek einzeln: Alle zusammen machen 16 der 19 MB aus. Ein Projekt, das nur solid und brands braucht, überträgt rund 2,3 MB statt 16 und hat keine ungenutzten SVGs auf dem Server. Braucht ein Projekt keine Icons, lässt man diese Pakete ganz weg.

Nicht auf eine Entwicklungsumgebung installieren

Das Kernpaket enthält bewusst kein source/, scripts/ und docs/ — es ist eine Auslieferung, kein Arbeitsverzeichnis. Auf einer Entwicklungsumgebung würde die Installation diese Ordner entfernen. Der TW Hub Agent erkennt ein Arbeitsverzeichnis an .git, node_modules, source oder scripts und verweigert die Installation.

2. Child-Theme anlegen

Aktiviert wird nie der Parent, sondern immer ein Child-Theme. Selbst wenn ein Projekt zunächst nichts anpasst — sobald die erste Anpassung kommt, ist das Child schon da und nichts muss umgezogen werden.

Ein Child braucht zwei Dateien. Zuerst style.css mit dem Kopf, der den Parent benennt:

/**
 *  Theme Name:        Projektname
 *  Template:          twtheme
 *  Version:           1.0.0
 *  Requires at least: 6.7
 *  Requires PHP:      8.2
 *  Text Domain:       projektname
 */

Entscheidend ist Template: twtheme — daran erkennt WordPress den Parent.

Dann functions.php, um das Stylesheet zu laden:

<?php
defined('ABSPATH') || exit();

add_action('wp_enqueue_scripts', 'projektname_enqueue_assets', 30);
function projektname_enqueue_assets(): void
{
    $path = get_stylesheet_directory() . '/style.css';

    if (! is_readable($path)) {
        return;
    }

    wp_enqueue_style(
        'projektname',
        get_stylesheet_directory_uri() . '/style.css',
        function_exists('twtheme_main_style_deps') ? twtheme_main_style_deps() : [],
        (string) filemtime($path)
    );
}

twtheme_main_style_deps() sorgt dafür, dass das Parent-Bundle zuerst geladen wird und die Regeln des Childs gewinnen.

Als vollständige Vorlage dient das Theme TWtheme Demo. Dort ist jeder der vorgesehenen Erweiterungswege einmal ausgeschrieben.

Die functions.php des Childs läuft vor der des Parents

Zum Zeitpunkt, an dem die functions.php des Childs ausgeführt wird, existieren TWTHEME__DIR, TWTHEME__OPTIONS und twtheme_include_files() noch nicht. Code, der sie braucht, gehört in after_setup_theme oder später.

add_filter() auf Parent-Filter ist dagegen auf Dateiebene richtig — der Parent wendet sie erst beim Booten an.

Mehr dazu unter Child-Theme.

3. Module wählen

Nach der Aktivierung sind die meisten Module an. Unter Theme → Module schaltet man ab, was das Projekt nicht braucht.

Der Reihe nach durchgehen lohnt sich einmal am Anfang: Jedes aktive Modul lädt PHP, registriert womöglich Blöcke und zeigt Optionsfelder. Was aus bleibt, kostet nichts.

Zwei Entscheidungen sind dabei wichtig, weil sich die Optionen gegenseitig ausschließen:

Frage Auswahl
Wie wird die Einwilligung verwaltet? Complianz oder Cookiebot — nicht beides
Welche Karten? Google Maps oder OpenStreetMap — nicht beides

Ausführlich unter Module schalten.

4. Grunddaten setzen

Unter Theme → Einstellungen kommen die Daten hinein, die überall auf der Seite gebraucht werden.

Im Reiter mit dem Namen der Website:

  • Logos — Hauptlogo, Footer-Logo, Logo für das mobile Menü
  • Contact Information — Telefon, E-Mail, Öffnungszeiten
  • Channels — die Social-Media-Kanäle

Im Reiter Allgemein:

  • Favicons — bleiben die Felder leer, greifen die Standarddateien des Themes

Die Kontaktdaten sind danach als Shortcode überall verfügbar: [tw-logo], [tw-phone], [tw-email], [tw-opening-hours]. Sie stehen also genau einmal in der Datenbank, auch wenn die Telefonnummer auf zehn Seiten erscheint.

Ausführlich unter Theme-Optionen.

5. Kopf- und Fußbereich bauen

Kopf- und Fußbereich sind Template-Parts und werden unter Design → Editor bearbeitet. Der Parent liefert eine schlichte Hülle, die ein Projekt ersetzt.

Für die Hauptnavigation gibt es zwei Wege:

Block Passt, wenn
TW Megamenü mehrspaltige Dropdowns mit Bildern oder Widgets gebraucht werden
Klassisches Menü ein Menü aus Darstellung → Menüs genügt

Wenn etwas fehlt

Zeigt ein Block sich nicht im Editor oder wirkt eine Einstellung nicht, ist fast immer das zugehörige Modul aus. Die Seite Theme → Info listet auf, welche Module laufen, dazu die Versionen von Theme, WordPress, PHP und allen Plugins — mit einem kopierfertigen Bericht für Supportanfragen.

Wie es weitergeht

  • Architektur
    Wie Parent, Child, Module und Feld-Engine zusammenspielen.

  • Anwenden
    Blöcke, Einstellungen und Inhalte im Detail.

  • Entwickeln
    Child-Theme, eigene Felder, eigene Module.