Beschreibung
In dieser Lektion lernen Sie, dass WordPress-Themes häufig eine Datei namens functions.php enthalten, in der einzigartige Funktionen und benutzerdefinierte Funktionen hinzugefügt werden können. Plugins dienen jedoch ebenfalls dazu, Ihrer Website Funktionen und Funktionalitäten hinzuzufügen. Wann sollten Sie functions.php verwenden, um Ihren eigenen Code hinzuzufügen, und wann sollten Sie Plugins verwenden? Diese Lektion hilft Ihnen, den Unterschied zwischen beiden zu verstehen.
Lernziele
Nach Abschluss dieser Lektion werden Sie in der Lage sein:
- Die Verwendung von functions.php im Vergleich zur Verwendung von Plugins zum Hinzufügen von Funktionalitäten zu erkennen und zu identifizieren.
- Zu erklären, wann Funktionen verwendet werden sollten und wann nicht.
Vorausgesetzte Kenntnisse
Sie werden diese Lektion besser bearbeiten können, wenn Sie über Folgendes verfügen:
- Grundkenntnisse darüber, wie man ein Theme und ein Plugin erstellt
- Grundlegende Vertrautheit mit PHP- und WordPress-Code
Fragen zur Vorbereitung
- Sind Sie mit der Installation und Aktivierung von Themes über das WordPress-Dashboard vertraut?
- Werden Sie während des Unterrichts eine lokal oder remote gehostete WordPress-Sandbox-Website zur Verfügung haben?
- Fühlen Sie sich sicher im Umgang mit einem Texteditor zum Bearbeiten von Code?
- Haben Sie schon einmal eine benutzerdefinierte Funktionalität zu Ihrer WordPress-Website hinzugefügt?
- Sind Sie mit der Dateihierarchie von WordPress-Themes vertraut?
Folien
- Für diesen Unterrichtsplan gibt es keine Folien
Benötigte Materialien
- WordPress lokal installiert
- Zwei oder mehr installierte WordPress-Themes
Hinweise für die Präsentation
- Für Studierende ist es am einfachsten, mit einer lokal installierten WordPress-Kopie zu arbeiten. Planen Sie vor dem Unterricht etwas Zeit ein, um Studierende bei Bedarf bei der lokalen Installation von WordPress zu unterstützen. Weitere Informationen zur lokalen Installation von WordPress finden Sie unter Installing on a Local Server.
- Die bevorzugte Antwort auf die Fragen zur Vorbereitung ist „ja“. Teilnehmende, die alle Fragen mit „nein“ beantworten, sind möglicherweise noch nicht bereit für diese Lektion.
Ablauf der Lektion
- Die Datei functions.php vorstellen
- Den Unterschied zwischen functions.php und einem Plugin zeigen
- Beschreiben, wann die Verwendung von functions.php sinnvoll ist
- Beispiele für Dinge geben, die zu einer functions.php hinzugefügt werden sollten und nicht hinzugefügt werden sollten
- Den Unterschied bei der Implementierung von functions.php in Block-Themes und klassischen Themes zeigen
Übungen
Fügen Sie Funktionalität ausschließlich zu functions.php hinzu.
1. Fügen Sie Ihrem aktiven Theme benutzerdefinierte Funktionalität für die Auszugslänge hinzu, indem Sie den folgenden Code in die functions.php-Datei einfügen:
function themename_custom_excerpt_length( $length ) {
return 40; //number of words in excerpt
}
add_filter('excerpt_length','themename_custom_excerpt_length', 99 );
2. Erstellen Sie einen Test-Blogbeitrag mit einem langen Auszug. Überprüfen Sie, ob er korrekt funktioniert, und wechseln Sie anschließend das Theme.
3. Beachten Sie, dass die Funktionalität nicht mehr vorhanden ist, weil sie in der functions.php-Datei eines bestimmten Themes platziert wurde.
Bewertung
Welche der folgenden Funktionen sollte nicht in function.php enthalten sein?
- Sidebar-Styling
- Favicon
- Benutzerdefinierter Hintergrund
Antwort: 2. Favicon
Zusätzliche Ressourcen
Beispiellektion
Einführung: Was ist eine functions.php-Datei?
Die Datei functions.php wird verwendet, um das Standardverhalten von WordPress hinzuzufügen, zu entfernen oder anderweitig zu ändern. Die Datei befindet sich im Ordner des Themes. functions.php verhält sich wie ein WordPress-Plugin und ermöglicht es dem Autor, einer WordPress-Website benutzerdefinierte Funktionen und Funktionalitäten hinzuzufügen. Ein Child-Theme kann eine eigene functions.php besitzen. Anders als bei style.css überschreibt die functions.php eines Child-Themes jedoch nicht die functions.php des übergeordneten Themes. Stattdessen wird sie zusätzlich zur functions.php des übergeordneten Themes geladen. (mehr dazu hier)
Worin unterscheidet sich functions.php von einem Plugin?
Da functions.php und Plugins beide das Erstellen benutzerdefinierter Funktionalitäten und das Ändern des Standardverhaltens in WordPress ermöglichen, kann es etwas verwirrend sein zu verstehen, wann functions.php verwendet werden sollte und wann ein Plugin erstellt oder verwendet werden sollte, um Funktionalität hinzuzufügen. Wenn Sie beide Methoden genauer betrachten, können Sie besser verstehen, wann welche Lösung angemessen ist. Im Allgemeinen sind Plugins unabhängige Module, die heruntergeladen und auf Ihrer WordPress-Website installiert werden können. Der Zweck eines Plugins besteht darin, die Funktionalität von WordPress zu erweitern oder neue Funktionen hinzuzufügen. Zur Aktivierung von Plugins ist keine Änderung am aktiven Theme erforderlich. Im Gegensatz dazu sind Themes eine Gruppe von Dateien, die dafür entwickelt wurden, das Erscheinungsbild von WordPress zu verändern. Obwohl Themes benutzerdefinierte Funktionalitäten enthalten können (benutzerdefinierte Inhaltstypen, ein visuelles Konfigurationspanel usw.), wählen Sie Themes größtenteils danach aus, wie sie die Benutzererfahrung auf Ihrer Website verändern. Die grundlegenden Merkmale, die WordPress-Plugins von der Datei functions.php unterscheiden, sind:
Ein WordPress-Plugin …
- benötigt einen spezifischen, einzigartigen Header-Text.
- wird in wp-content/plugins gespeichert, normalerweise in einem Unterverzeichnis.
- wird nur ausgeführt, wenn es einzeln über das „Plugins“-Panel aktiviert wurde.
- gilt für alle Themes.
- sollte einen einzigen Zweck haben, z. B. Beiträge in Seiten umzuwandeln, Funktionen zur Suchmaschinenoptimierung anzubieten oder bei Backups zu helfen.
Eine functions.php-Datei …
- benötigt keinen einzigartigen Header-Text.
- wird zusammen mit jedem Theme im Unterverzeichnis des Themes unter wp-content/themes gespeichert.
- wird nur ausgeführt, wenn sie sich im Verzeichnis des aktuell aktivierten Themes befindet.
- gilt nur für dieses Theme. Wenn das Theme gewechselt wird, geht die Funktionalität verloren.
- kann zahlreiche Codeblöcke für viele verschiedene Zwecke enthalten.
Wann functions.php verwendet werden sollte
Man könnte daraus schließen, dass benutzerdefinierte Funktionalität, die sich auf die visuelle Darstellung bezieht, in functions.php enthalten sein sollte, während Funktionalität, die sich auf das Verhalten der Website bezieht, in einem Plugin gespeichert werden sollte. Technisch ist es jedoch auch möglich, Anpassungen der visuellen Darstellung in einem Plugin zu speichern. Wie bestimmen wir also, welche Lösung die beste ist? Die Antwort ist überraschend einfach. Die Frage, die wir uns stellen müssen, lautet: Sollte diese Funktionalität an ein bestimmtes Theme gebunden sein oder nicht? Da sich functions.php in einem Theme-Ordner befindet, muss dieses Theme aktiv sein, damit eine benutzerdefinierte Funktionalität funktioniert. Würde eine solche benutzerdefinierte Funktionalität jedoch in einem Plugin gespeichert, könnten Sie Themes wechseln und die benutzerdefinierte Funktionalität trotzdem beibehalten. Die beste Methode, um zu bestimmen, wie Ihr eigener Code eingebunden werden sollte, besteht daher darin zu prüfen, ob die Funktionalität spezifisch für ein Theme ist oder ob sie unabhängig vom aktivierten Theme den Inhalt oder die Struktur der Website unterstützt. Beispielsweise möchten Sie möglicherweise aufgrund des Designs und Layouts eine einzigartige Auszugslänge für Beiträge in einem bestimmten Theme festlegen. In diesem Fall sollte die Auszugsfunktionalität zu functions.php hinzugefügt werden. Wenn Sie für alle Beiträge unabhängig vom verwendeten Theme einen „Mehr lesen“-Link implementieren möchten, sollte diese Funktion als Plugin hinzugefügt werden.
Dinge, die in functions.php enthalten sein können:
- Inhaltsformatierung
- Theme-spezifische Funktionen für Kopf- und Fußzeile
- WordPress-Hooks zum Ändern der Ausgabe, beispielsweise durch Verwendung des Filters
excerpt_length, um die Länge eines Beitragsauszugs zu ändern - Code, der die Theme-Unterstützung für Beitrags-Thumbnails, Beitragsformate und Navigationsmenüs aktiviert
- Funktionen, die Sie in mehreren Theme-Template-Dateien wiederverwenden möchten
Dinge, die nicht in functions.php enthalten sein sollten:
- SEO-bezogene Funktionalitäten
- Google-Analytics-Skripte
- Benutzerdefinierte Inhaltstypen und Taxonomien
Implementierung von functions.php in Block-Themes und klassischen Themes
Klassische WordPress-Themes erfordern, dass der Entwickler dem Theme Unterstützung für WordPress-Funktionen hinzufügt. Eine typische functions.php-Datei in einem klassischen Theme enthält eine Funktion, die mithilfe der add_theme_support()–Funktion (auch als „Theme-Unterstützungen“ bezeichnet) die Unterstützung für diese Themes einrichtet.
In einem Block-Theme sind bestimmte Theme-Unterstützungen standardmäßig aktiviert und müssen nicht ausdrücklich aktiviert werden. Außerdem werden einige Theme-Unterstützungen aktiviert, wenn Sie eine Einstellung in der Datei theme.json eines Block-Themes angeben. Die Einstellung in theme.json hat Vorrang vor einer Funktion, die über add_theme_support() hinzugefügt wurde. Beispielsweise aktiviert das Einfügen der Einstellung settings.layout in theme.json die Theme-Unterstützung align-wide.