Dein eigenes WordPress-Plugin leicht gemacht

Dein eigenes WordPress-Plugin leicht gemacht

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 mit dem AppWizard von STRATO Hosting installierten WordPress ist das Plugin-Verzeichnis beispielsweise /wordpress/wp-content/plugins/.

Dein Plugin gehört in denselben Ordner am Server wie alle anderen WordPress-Plugins auch.
Dein Plugin gehört in denselben Ordner am Server wie alle anderen WordPress-Plugins auch.

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. Der Shortcode dazu soll so aussehen:

[map width="600" height="400" src="https://www.google.com/maps/embed?..."]
Über den Shortcode definierst Du die Breite, Höhe und Karten-URL …
Über den Shortcode definierst Du die Breite, Höhe und Karten-URL …

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 Shortcode-Funktion in Deinem Plugin erledigt den Rest.
… die Shortcode-Funktion in Deinem Plugin erledigt den Rest.

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.

Im Plugin-Code macht ein kurzer Kommentar einzelne Funktionalitäten identifizierbar …
Im Plugin-Code macht ein kurzer Kommentar einzelne Funktionalitäten identifizierbar …
… und in einer separaten Datei kannst Du alle Informationen dazu ausführlich dokumentieren.
… und in einer separaten Datei kannst Du alle Informationen dazu ausführlich dokumentieren.

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.

Schlagworte: ,

Teilen

  1. Avatar

    Kai sagte am

    WooW, das hilft auch Nicht-Strato-Kunden, das ist ein Extra-Danke wert!!!

    Antworten
  2. Avatar

    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!

    Antworten
  3. Avatar

    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! 🙂

    Antworten
  4. Avatar

    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

    Antworten
  5. Avatar

    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

    Antworten
Weitere Kommentare laden

Sie können erst kommentieren, wenn Sie unseren Datenschutzbestimmungen und den Cookies zugestimmt haben. Aus Datenschutzrechtlichen Gründen dürfen wir andernfalls keine personenbezogenen Daten von Ihnen aufzeichnen.

Klicken Sie dazu einfach unten im Browser Fenster auf den blauen Button Akzeptieren. Nach dem Neuladen der Seite können Sie Ihr Kommentar schreiben.

Diese Webseite verwendet Cookies, um die Nutzung der Seite zu verbessern, den Erfolg von Werbemaßnahmen zu messen und interessengerechte Werbung anzuzeigen. Durch die Nutzung dieser Seite erklären Sie sich damit einverstanden. Informationen