Seite wählen

WordPress Plugin Header Requirements

<?php
 /*
 Plugin Name: WordPress Plugin
 Description: Custom Plugin
 Version: 1.0
 Author: Pascal Cabart
 Author URI: https://www.studentenwebdesign.de
 / / Start Adding Functions Below this Line */

Quelle

PHP und WordPress, das Problem

Wenn man gerade frisch in die Welt von WordPress einsteigt, und aus der Welt des Programmierens kommt, wird man von WordPress zu Beginn sehr verwirrt sein. Mit einem Marktanteil von 65 % gehört WordPress zu einer tief etablierten Software, an der man ohne weiteres nicht herumkommt. Bei einer solch ausgeprägten Beliebtheit sollte es doch als Programmierer einfach sein, eigene Ergänzungen mit PHP machen zu können? Dies ist aber erstmal so nicht der Fall.

Der Laie hat bei der Verwendung von WordPress sogar einen Vorteil, den er versucht nicht, mit eigenem Code seine Wünsche unterzubringen, sondern bedient sich ausschließlich an bereits erstellten WordPress-Plugins. Sehr oft habe ich es schon gesehen, dass der Kunde kleine Code Änderungen am WordPress Core oder dem Theme vorgenommen hat, wobei es natürlich nur „ganz kleine Anpassungen“ sind, wie z.Bsp. dass das Jahr im WordPress Footer automatisch immer das aktuellste zeigt.

Egal wie klein die Änderung ist, nach einem Update sind alle weg und dann müsste man theoretisch die Codeänderungen nochmal durchführen. Deswegen machen dann viele keine Updates und wenden sich früher oder später an einen Experten, nachdem die Seite kurz vorm zusammen fallen ist.

WordPress bedarf in der Regel keine Code-Anpassungen

WordPress gibt es seit Anfang 2003, das sind bis heute stolze 19 Jahre. Es ist Open Source, was bedeutet, dass jeder an der Code-Entwicklung teilnehmen kann. Nach 19 Jahren Entwicklung von zahlreichen Programmierern auf der ganzen Welt ist die Software von WordPress und das gesamte Ökosystem von WordPress-Themes und Plugins so fortgeschritten, dass es generell kaum Code-Anpassungen bedarf. Nahezu jede Art von Funktion, die man sich vorstellen kann, wurde bereits in einem Plugin realisiert.

95 % der realen Anwendungsfälle bedürfen keiner Programmierung mehr. Ich habe oft Programmierer, die sich bei uns für Praktika bewerben. Denen sage ich oft, dass Sie für WordPress bereits überqualifiziert sind und es lediglich nur noch Designer braucht, welche WordPress ohne Programmierkenntnisse bestens benutzen können.

Wann PHP in WordPress Sinn ergibt

In WordPress gilt die strikte Regel: keine Codeänderungen am eigentlichen WordPress Code und Code-Änderungen am WordPress-Theme nur unter Update-sicheren Bedingungen. Direkte Code-Eingriffe sind nicht erlaubt, wenn du diese machst oder in Vergangenheit gemacht hast, ist deine Webseite instabil und wird das nächste Update in derselben Form nicht überstehen.

Wie kann man nun Code Änderungen am WordPress-Theme vornehmen? Es gibt 3 Möglichkeiten:

  1. Ein Child Theme erstellen (empfehle ich persönlich nicht)
  2. Eine functions.php Datei erstellen (ähnlich wie das Child Theme, empfehle ich auch nicht)
  3. Ein eigenes WordPress-Plugin schreiben, dass alle Code Anpassungen in Form von Hooks enthält (meine Empfehlung)

PHP in WordPress mit Hooks: Actions und Filters

Der gesamte WordPress Core und viele Themes sind auf eine sehr spezielle Art und Weise programmiert. Innerhalb des gesamten Codes finden sich Möglichkeiten, in den Code von WordPress einzugreifen, und zwar über sogenannte Hooks. Es gibt zwei Arten von Hooks, zu einem gibt es den Filter Hook, welcher so aussieht:

function wporg_filter_title( $title ) {
    return 'The ' . $title . ' was filtered';
}
add_filter( 'the_title', 'wporg_filter_title' );

Und dann gibt es noch den Actions Hook, welcher so aussieht:

function wporg_callback() {
    // do something
}
add_action( 'init', 'wporg_callback' );

Für den Programmierer sind diese Code-Snippets schon selbst erklärend. Filters dienen dazu Daten zu ändern und Actions ermöglichen das Ausführen von eigenen Funktionen zu einem bestimmten Zeitpunkt im Code. Diese zwei Optionen sind die einzige Art und Weise, wie man selbst geschriebenen Code in WordPress einbringen kann.

PHP WordPress-Plugin selbst schreiben: der Ersatz der functions.php

Es gibt durchaus einige Situationen, bei denen man bestimmte Filter und Actions braucht. Welche wann benutzt werden müssen, ist mittlerweile so ausgiebig dokumentiert, dass ich sogar schon Code-Laien gesehen habe, die wirklich durch Glück den richtigen Filter bei Google finden konnten. Der erste Versuch mit Copy Paste hat direkt zum gewünschten Ergebnis geführt.

Das Verwenden von Filters und Actions bedarf keiner ausgiebigen Programmier-Ausbildung, man muss lediglich darüber Bescheid wissen und wird bei der eigenen Google Recherche bezüglich WordPress auch schnell selbst auf verschiedene Beispiele stoßen. Wo bringt man aber nun diese Code-Snippets unter?

Oft wird empfohlen ein Child Theme zu erstellen, bei bloßen Hooks halte ich dies jedoch für etwas unnötig aufwendig. Es gibt Situationen, bei denen ein Child Theme zwingend nötig ist, und zwar dann, wenn man Code in das Page-Template einbringen muss. Nur in diesem Fall reicht ein eigens geschriebenes WordPress-Plugin nicht aus. In grob geschätzt 99 % der Fälle, ist das eigene WordPress-Plugin doch die schnellere und praktischere Wahl.

PHP WordPress Plugin Header Requirements

Um ein eigenes WordPress-Plugin zu erstellen, in welchem man alle Hooks geschrieben in PHP unterbringen kann, bedarf es lediglich einer PHP Datei mit folgendem Beginn, welcher sich Header requirements nennt:

<?php
/*
Plugin Name: functions-plugin.php
*/

Wenn man dies in eine PHP Datei schreibt, diese dann in einen Ordner legt, und den Ordner danach „Zippt“ lässt sich die Datei im WordPress Dashboard als WordPress-Plugin hochladen. Hier ist eine solche fertige Datei bereit zum Download.

Wenn man diese Datei nun als Plugin hochgeladen und aktiviert hat, lässt sich in WordPress über den Plugin-Editor der Code des Plugins direkt bearbeiten. Das Plugin ist offensichtlich momentan noch leer, dort lassen sich jetzt alle Filters and Actions unterbringen, ganz ohne Child Theme und komplett Update sicher.

Warum ein WordPress-Plugin und kein Child-Theme

Der Vorteil eines eigenen WordPress-Plugins gegenüber dem Child-Theme ist, dass bei einem Fehler in dem PHP des Plugins nichts passiert, außer dass das Plugin deaktiviert wird. Es wird quasi von dem WordPress System automatisch rausgeschmissen, wenn der Code nicht passt. Bei einem Child Theme kann es zu größeren Problemen kommen, wenn etwas im Code falsch ist. Offensichtlich wird erst einmal das Theme deaktiviert, was die gesamte Webseite verändert.

Mit einem eigenen WordPress-Plugin ist es leichter Anpassungen vorzunehmen, da die Auswirkungen sehr gering sind, wenn der Code falsch ist. Das Plugin wird lediglich deaktiviert, aber nahezu die gesamte Seite ist immer noch online. Ein deutlich weniger offensichtliches Problem.