Zentrales Stylesheet (style.css)
Jedes WordPress-Theme hat ein zentrales Stylesheet in style.css
. Es bestimmt die optische Darstellung der Seiteninhalte. WordPress sucht diese Datei im Stammverzeichnis des Themes.
Eigenschaften des Themes wie Name, Autor und weitere stehen in einem Kommentar am Anfang des zentralen Stylesheets. Beim Theme Twenty Nineteen sieht das folgendermaßen aus:
/* Theme Name: Twenty Nineteen Theme URI: https://github.com/WordPress/twentynineteen Author: the WordPress team Author URI: https://wordpress.org/ Description: A new Gutenberg-ready theme. Requires at least: WordPress 4.9.6 Version: 1.0 License: GNU General Public License v2 or later License URI: LICENSE Text Domain: twentynineteen Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready */
Folgende Eigenschaften sind vorgesehen:
- Theme Name
Name des Themes – darf Leerzeichen enthalten - Author
Die Autorin oder Organisation, die das Theme erstellt hat. Falls sie einenwordpress.org
Benutzernamen hat, gehört er hier hin - Author URI
Verweis auf die URI der Autorin oder der Organisation, die das Theme erstellt hat - Description
Eine Kurzbeschreibung des Themes - Version
Versionsnummer des Themes. WordPress erkennt durch Vergleich mit der Version aufwordpress.org
, ob es das Theme aktualisieren sollte - License
Die Art der Lizenz des Themes - License URI
Veweis auf den Text der Lizenz des Themes - Text Domain
Hilfestellung bei der Übersetzung von Inhalten - Tags
Worte oder Phrasen, die beim Stöbern im Theme-Verzeichnis von wordpress.org dabei helfen, das Theme durch Filtern schneller zu finden - Domain Path
Hilft WordPress, Übersetzungen von Theme-Texten auch dann zu finden, wenn das Theme abgeschalten ist. Voreinstellung ist/languages
Zentrale WordPress-Theme-Dateien
Um ein Thema im WordPress-Themenkatalog veröffentlichen zu können, muss es vier grundlegende Dateien beinhalten:
style.css
Diese Datei ist das zentrale Stylesheet des Themas. An dieser Datei erkennt WordPress, dass es sich um die Dateien in einem Theme-Verzeichnis überhaupt um ein Thema handelt. Sie enthält u.a. den Themen-Namen, den Autor und die Versionsnummer.index.php
Diese Datei ist die zentrale Vorlagedatei (Template). Wenn es nur diese Datei gibt, bestimmt sie das Aussehen aller von WordPress erzeugten Seiten (außer im Fall einer statischen Eingangsseite). Daher muss sie dann auch die komplette Funktionalität aller Seiten abdecken. Bei stark wechselnden Aussehen der Einzelseiten ist das Verteilen der Funktionalität auf weitere Template-Dateien sinnvoll.screenshot.png
In der WordPress-Themes-Übersicht zeigt dieses Bild eine Vorschau, wie das Theme aussehen kann. WordPress nutzt dieses Bild auch für den zentralen Themenkatalog, wenn das Theme veröffentlicht ist. Die Maximalgröße des Bildes ist 1200×900 Pixel.comments.php
WordPress nutzt diese Vorlage (Template), wenn es Kommentare anzeigt. Sie sollte Kommentare von Autoren und Nutzern anzeigen sowie einem Verlauf verschiedener Kommentare folgen können. Diese Vorlage ist zum Veröffentlichen eines Themes von Belang. Bei Themes ohne Kommentaren oder bei privaten Themes spielt sie keine Rolle.
Die zentralen Dateien eines Themes müssen im Hauptverzeichnis des Themes liegen. Bei aufwändigeren Themes empfiehlt sich das Verteielen weiterer eingefügter Dateien auf Unterverzeichnisse, zum Beispiel bei Bildern, Skripten oder Vorlagen-Schnipseln.
Die beiden Dateien style.css und index.php allein reichen schon aus, damit WordPress das Theme erkennt und (mit einem leeren Vorschaubild) anzeigt.
WordPress-Sicherheit erhöhen
WordPress PHP-Skripte rufen nach Start auch die PHP-Skripte der Themes und die Plugin-Skripte auf. Der Aufruf dieser Skripte erfolgt also von anderen Skripten aus und nicht durch Zugriff von Browsern auf die Skript-URLs. Ein direkter Aufruf dieser Skripte ist im Normalfall nicht vorgesehen, wobei es einzelne Themes and Plugins gibt, die diesen Aufruf nutzten könnten, z.B. zum Hochladen von Formulardaten – wofür WordPress eigentlich standardisierte und bessere Möglichkeiten hat.
Direkte Ausführung von Skripten in Unterverzeichnissen verbieten
Jedes Verzeichniss kann eine Datei .htaccess enthalten, die der jeweilig eingesetzte Webserver unter anderem für die Rechteverwaltung des aktuellen Verzeichnisses und seiner Unterverzeichnisse nutzt.
Ist die .htaccess
-Datei im Verzeichnis /wp-includes/themes
untergebracht, verhindert sie das direkte Ausführen von PHP-Code in Themes.
Direkte Ausführung von Plugin-Skripten sperrt die .htaccess
-Datei im Verzeichnis /wp_content/plugins
.
Das Vorgehen ist je nach Webserver etwas unterschiedlich:
Apache Webserver
Der folgende Code im Verzeichnis von Themes oder Plugins sperrt die direkte Ausführung von Skripten beim Apache Webserver ab Version 2.4:
# Kein direkter Zugriff auf *.php files
# in diesem Ordner und Unterordnern
<FilesMatch \.php$>
Require all denied
</FilesMatch>
nginx Webserver
Dieser Code sperrt die direkte Ausführung von Skripten beim nginx Webserver:
# Kein direkter Zugriff auf *.php files
# in diesem Ordner und Unterordnern
location ~ (^/wp-includes/plugins/.+\.php|^/wp-includes/themes/.+\.php) {
return 444;
}