Selbst als WordPress-User mit geringen PHP-Kenntnissen kannst Du überraschend einfach ein eigenes Plugin schreiben. Der Workshop zeigt Dir, wie das geht und welche Vorteile Plugins im Vergleich zu Code-Schnipseln in der functions.php des Themes haben.
Bestimmt hast Du auch schon nach Tricks gesucht, um einfache Funktionen in WordPress hinzuzufügen, wie beispielsweise Shortcodes, Code-Schnipsel zum Integrieren von Google Analytics oder ein Custom Post Type. Meist findest Du dabei Code-Schnipsel, die Du per Copy-and-Paste in die functions.php Deines WordPress-Themes übernimmst.
Die functions.php zu verändern, hat aber Nachteile:
- Änderst Du die functions.php direkt im Theme, gehen die Änderungen mit dem nächsten Update verloren. Du solltest dafür also ohnehin immer ein Child-Theme anlegen.
- Wechselst Du eines Tages Dein Theme, musst Du die Änderungen in der php mühselig heraussuchen und in das neue Theme übertragen.
- Je mehr Du in der php ergänzt, desto unübersichtlicher wird die Datei und desto mühseliger die Fehlersuche.
Die Lösung: Dein eigenes Plugin
All diese Probleme vermeidest Du, indem Du die meisten Deiner Anpassungen und Ergänzungen stattdessen in ein eigenes WordPress-Plugin packst. Dort verwaltest Du Code-Schnipsel komfortabel. Wenn sich ein Fehler einschleicht, nimmst Du das Plugin kurzfristig offline und musst nicht am Live-System in der functions.php auf Fehlersuche gehen. Und auch in ein neues Theme kannst Du ein solches Plugin mitnehmen.
Ein Plugin erstellen ist sehr einfach
Ein eigenes Plugin zu programmieren klingt sehr kompliziert, ist es aber nicht. Genau genommen brauchst Du erst einmal nur ein paar Zeilen Text in einer neu anzulegenden PHP-Datei.
<?php defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); /* also read https://codex.wordpress.org/Writing_a_Plugin */ /* Plugin Name: Name Deines Plugins Description: kurze Beschreibung */ /* Plugin-Code UNTERhalb dieser Zeile */ /* Plugin-Code OBERhalb dieser Zeile */
Speichere diese Datei mit einem beliebigen Dateinamen und der Dateiendung .php ab, lege im Plugin-Verzeichnis Deiner WordPress-Installation (/wp-content/plugins) einen neuen Ordner mit beliebigem Namen an und lade die Datei dort hinein.
Bei einem in WordPress & Co. von STRATO Hosting installierten WordPress ist das Plugin-Verzeichnis beispielsweise /wordpress/wp-content/plugins/.
Achte darauf, dass der Plugin Name einzigartig ist und nicht denselben Namen trägt wie ein anderes Plugin.
Anschließend musst Du noch das eben neu erstellte Plugin in WordPress aktivieren. Jetzt hast Du Dein eigenes WordPress-Plugin, allerdings noch ohne Funktion.
Eigene Funktionalität hinzufügen
Von nun an fügst Du neue Code-Schnipsel in dieses Plugin ein, statt sie in die functions.php Deines Themes zu kopieren. Gegebenenfalls kannst Du natürlich bereits früher eingefügten Code aus der functions.php hierher umziehen.
Die Möglichkeiten sind vielfältig, von kurzen Code-Schnipseln mit nützlichen Detailfunktionen über Shortcodes bis hin zu Custom Post Types – also alles, was Du sonst auch in der functions.php tun kannst.
Um zu demonstrieren, wie Dein Plugin zum Leben erwacht, definieren wir beispielhaft einen neuen Shortcode. Wir möchten Google-Landkarten in Postings einbauen und deren Breite und Höhe jeweils individuell definieren. Füge dazu im Gutenberg-Editor einen Shortcode-Block ein. Der Shortcode dazu soll so aussehen:
[map width="600" height="400" src="https://www.google.com/maps/embed?..."]
Unser Plugin mit dem dazu gehörigen PHP-Code sieht dann so aus:
<?php /* Plugin Name: Mein individuelles Plugins Description: spezielle Funktionen und Code fuer mein Blog */ /* Shortcode [map width="" height="" src=""] - Google-Karte einfuegen */ function MeineGoogleMap($atts) { extract(shortcode_atts(array( "width" => '800', "height" => '600', "src" => '' ), $atts)); return '<iframe width="'.$width.'" height="'.$height.'" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="'.$src.'"></iframe>'; } add_shortcode("map", "MeineGoogleMap"); ?>
Die im Shortcode einzufügende URL im Attribut src ist übrigens diejenige, die Google Maps unter „Teilen“ – „Karte einbetten“ ausgibt.
Auf die Details des Shortcodes soll hier nicht näher eingegangen werden. Es geht in diesem Artikel vor allem darum zu zeigen, wie Code in die Plugin-Datei eingefügt wird.
Welcher Code gehört ins Plugin, welcher nicht?
Gut aufgehoben ist in Deinem Plugin sämtlicher Code, der nichts direkt mit Deinem Theme zu tun hat. Das sind also Funktionen, die auch unabhängig vom Theme nützlich sind.
Im Umkehrschluss solltest Du alles, was direkten Einfluss auf das Theme nimmt, auf dessen Funktionen aufbaut oder solche verändert, in der functions.php belassen. Ein typisches Beispiel dafür wäre die Definition zusätzlicher Bilder-Größen für die Medien-Bibliothek.
Denn: Wechselst Du später einmal das Theme, wären diese Code-Teile im Plugin heimatlos und würden WordPress mit unnötigem, weil dann nutzlosem Code aufblähen.
Tipp: Strukturiere Dein Plugin mit Kommentarzeilen
Gewöhnlich enthält ein Plugin genau eine Funktionalität. Im Falle Deines individuellen Plugins packst Du aber viele voneinander unabhängige Code-Schnipsel in ein einziges Plugin. Damit Du Dich später darin noch zurecht findest, solltest Du Ordnung halten und alles gut dokumentieren – und zwar am besten außerhalb des Plugins, um dessen Code nicht aufzublähen.
Gebe innerhalb des Plugins jeder Funktion per PHP-Kommentar /* kommentar */ einen Namen oder eine Kurzbeschreibung und lege Dir dann separat eine Textdatei an, in die Du Details zur jeweiligen Funktionalität hinterlegst. Besonders wichtig ist dabei die Quelle, aus der Du den Code-Schnipsel bezogen hast. Denn dann kannst Du später bei eventuell auftretenden Problemen dort nachsehen und eventuelle Updates finden.
Kai sagte am
WooW, das hilft auch Nicht-Strato-Kunden, das ist ein Extra-Danke wert!!!
Timo sagte am
Danke für den Kurz-Einstieg in die WP Plugins. Konnte meine ganzen Custom-Funktionen jetzt schön in einem eigenen, kleinen Plugin verpacken. Fühlt sich viel besser an!
sagte am
Das freut mich zu lesen, Timo. Schau Dich gern noch weiter im Blog um. Wir versorgen Euch hier regelmäßig mit Tipps rund ums Bloggen und WordPress.
Viele Grüße
Lisa
CMS Freund sagte am
Das war wirklich hilfreich vielen Dank. Ich denke so hat man zumindest einen Einstiegspunkt. Ist ja fast schon bester CMS Support, den man hier findet. Danke nochmal, ich werde das auch weitergeben! 🙂
Christoph Zeuch sagte am
Danke, lieber CMS Freund, ich werde das gern weitergeben 🙂
Viele Grüße
Nicole
Thomas Schmitzer sagte am
Weiss jemand wie man mit einem eigenen plugin – code in den header und in den footer der eigenen wordpress-webseite integriert?
Gruss Thomas
Franz Neumeier sagte am
Hallo Thomas,
um Code in den Header oder Footer einzufügen, würde ich ein Child-Theme anlegen (siehe: https://strato.de/blog/child-themes-individuelles-wordpress-design-ganz-einfach/ ) und den Code in die Theme-Dateien (normalerweise sind das: header.php, footer.php) direkt einfügen. Der Umweg über ein Plugin ist da überflüssig. Oder gibt’s einen speziellen Grund, warum Du diesen Umweg unbedingt gehen musst?
Herzliche Grüße
Franz
Marcco sagte am
Hab’s schon:
Im Beitrag oben (Zeile 29) ist ein Blank zu viel:
Statt: add_shortcode(“map”, ” MeineGoogleMap”);
gehört Statt: add_shortcode(“map”, “MeineGoogleMap”);
Danke
Franz Neumeier sagte am
Autsch – vielen Dank für den Hinweis, ich habe den Code oben korrigiert.
Herzliche Grüße
Franz