

{"id":3008,"date":"2011-04-16T18:51:35","date_gmt":"2011-04-16T17:51:35","guid":{"rendered":"http:\/\/elearning.hwr-berlin.de\/blog\/?p=3008"},"modified":"2019-07-26T12:30:38","modified_gmt":"2019-07-26T10:30:38","slug":"do-it-yourself-wordpress-plugins","status":"publish","type":"post","link":"https:\/\/blog.hwr-berlin.de\/elerner\/do-it-yourself-wordpress-plugins\/","title":{"rendered":"Do it yourself: WordPress Plugins"},"content":{"rendered":"<p>Die meisten, die einen WordPress-Blog betreiben, werden sie kennen: Plugins. Diese kleinen (oder auch gro\u00dfen) Zusatzmodule erweitern die Funktionalit\u00e4t des Blogs. Dabei gibt es Plugins, die die Administration im Hintergrund (<a href=\"http:\/\/de.wikipedia.org\/wiki\/Front-End_und_Back-End\" target=\"_blank\" rel=\"noopener noreferrer\">Backend<\/a>) erweitern, verbessern oder erleichtern, z.B. der Spamschutz <a href=\"http:\/\/akismet.com\/\">Akismet<\/a>, und solche, die direkt (sichtbar) als Funktion in den Blog (quasi das <a href=\"http:\/\/de.wikipedia.org\/wiki\/Front-End_und_Back-End\" target=\"_blank\" rel=\"noopener noreferrer\">Frontend<\/a>) eingehen, z.B. die <a href=\"http:\/\/www.wibiya.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Wibiya-Toolbar<\/a>. Diese Plugins lassen sich leicht installieren. In der Administration unter &#8222;Plugins&#8220; kann man sowohl die installierten Plugins verwalten als auch nach neuen suchen und diese dann installieren. Dabei kann man auf den riesigen <a href=\"http:\/\/wordpress.org\/extend\/plugins\/\" target=\"_blank\" rel=\"noopener noreferrer\">Fundus von WordPress<\/a> zur\u00fcckgreifen, der professionelle Plugins, wie <a href=\"http:\/\/wordpress.org\/extend\/plugins\/google-analytics-for-wordpress\/\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics<\/a>, aber auch zahlreiche von &#8222;Hobby-Codern&#8220; enth\u00e4lt. Die Kompatibilit\u00e4t der Plugins mit den jeweiligen Versionen von WordPress ist in der Regel angegeben. Dar\u00fcber hinaus, werden die meisten Plugins von den Nutzern bewertet, wodurch man bereits vorher sehen kann, ob das Plugin etwas &#8222;taugt&#8220; oder nicht. Plugins hei\u00dft aber noch viel mehr als nur &#8222;Installieren&#8220; klicken und fertig&#8230;<\/p>\n<p><strong>Do it yourself:<\/strong> Soviel zum Konsum von sch\u00f6nen Plugins. Aber was tun, wenn man gerne etwas h\u00e4tte, was es (noch) nicht gibt? Genau: Wie immer im Leben, selbst machen! <!--more-->Aus diesem Grunde enth\u00e4lt WordPress eine <a href=\"http:\/\/de.wikipedia.org\/wiki\/Programmierschnittstelle\" target=\"_blank\" rel=\"noopener noreferrer\">API<\/a>, also eine Programmierschnittstelle, die es m\u00f6glich macht mit WordPress zu &#8222;sprechen&#8220;. Sehr komfortabel sind dabei die umfangreichen <a href=\"http:\/\/de.wikipedia.org\/wiki\/Funktion_%28Programmierung%29\" target=\"_blank\" rel=\"noopener noreferrer\">Funktionen<\/a>, die WordPress bereitstellt. Zwar muss man das Gros schon selbst &#8222;programmieren&#8220;, gerade aber die Datenbank-Kommunikation wird, durch die Vielzahl an fertigen Funktionen, sehr erleichtert; was zudem auch die Gefahr senkt, in der doch recht komplexen Struktur der WP-Datenbank, falsch Daten zu erg\u00e4nzen oder zu ver\u00e4ndern. Auch z.B. bei <a href=\"http:\/\/de.wikipedia.org\/wiki\/SQL#Abfrage_mit_verkn.C3.BCpften_Tabellen\" target=\"_blank\" rel=\"noopener noreferrer\">verkn\u00fcpften Abfragen<\/a> (\u00fcber mehrere Tabellen gleichzeitig), ersparen die Funktionen einem einiges an Recherche bez\u00fcglich der relevanten Tabellen und <a href=\"http:\/\/de.wikipedia.org\/wiki\/Schl%C3%BCssel_%28Datenbank%29\" target=\"_blank\" rel=\"noopener noreferrer\">Schl\u00fcssel<\/a>. Hier sind einige Links aus der riesigen WordPress Docs Sammlung, die mir als Einstieg rund um die Plugin-Erstellung sehr geholfen haben:<\/p>\n<ul>\n<li><a href=\"http:\/\/codex.wordpress.org\/Writing_a_Plugin\" target=\"_blank\" rel=\"noopener noreferrer\">Einstieg in die Plugin-Erstellung<\/a><\/li>\n<li><a href=\"http:\/\/codex.wordpress.org\/Plugin_API\" target=\"_blank\" rel=\"noopener noreferrer\">Die Plugin API<\/a><\/li>\n<li><a href=\"http:\/\/codex.wordpress.org\/Adding_Administration_Menus\" target=\"_blank\" rel=\"noopener noreferrer\">Das Plugin (im Backend) als eigenes Men\u00fc darstellen<\/a><\/li>\n<li><a href=\"http:\/\/codex.wordpress.org\/Function_Reference\/\" target=\"_blank\" rel=\"noopener noreferrer\">Die WordPress Funktionen<\/a><\/li>\n<li><a href=\"http:\/\/codex.wordpress.org\/Function_Reference\/wpdb_Class\" target=\"_blank\" rel=\"noopener noreferrer\">Die WordPress Datenbank-Klasse<\/a><\/li>\n<\/ul>\n<p><strong><em>Prinzipiell ist alles m\u00f6glich<\/em><\/strong> <strong>:<\/strong> Ob also HTML, JavaScript, Java, PHP, CSS, Ajax, SQL, Flash usw. ist v\u00f6llig egal, wenn der Server bzw. der Browser es verarbeiten kann. Man kann sich ein Plugin wie eine Seite in der Seite vorstellen. Deshalb sind der Gestaltung in der Regel keinerlei Grenzen gesetzt. Grunds\u00e4tzlich empfehlen sich aber auf jeden Fall Kenntnisse in HTML, PHP und SQL. Zwar k\u00f6nnte man auch rein &#8222;statische&#8220; Sachen machen, allerdings macht es erst wirklich Sinn, wenn man die WordPress-Inhalte mit einbeziehen kann und dazu braucht man in der Regel die Datenbank, also SQL. Die &#8222;Verarbeitung&#8220; l\u00e4uft dann \u00fcber PHP oder \u00e4hnliches und schlie\u00dflich die Ausgabe in HTML; ggf. CSS-styled \u2013 wobei man dort auch schon auf einige WordPress Stile zur\u00fcckgreifen kann, was wieder die Arbeit erleichtert.<\/p>\n<p>Um die Materie nun etwas plastischer werden zu lassen, m\u00f6chte ich drei Plugins unseres eLerner-Blog Backends vorstellen, die ich (zur internen Verwendung) erstellt habe. Das Trio h\u00f6rt auf YouCat, YouVid und YouWordle. &#8222;You*&#8220; kommt nicht vom bekannten Videoportal, sondern vom Fokus auf den Anwender. Genau das ist der Sinn der Plugins; sie sollen einem das Leben erleichtern.<\/p>\n<p><strong><em>YouCat<\/em><\/strong> ist zur Steuerung der Artikel in den Kategorien &#8222;Latest Article&#8220; und &#8222;Featured&#8220; auf der eLerner-Blog Startseite zust\u00e4ndig. Welche Artikel dort erscheinen, ist abh\u00e4ngig davon, welche der jeweiligen Kategorie zugeordnet sind. Da sich diese Artikel st\u00e4ndig \u00e4ndern, m\u00fcssten den neuen Artikel immer die jeweilige Kategorie zugewiesen und den \u00e4lteren die Kategorie entzogen werden. Dieses st\u00e4ndige Hinzuf\u00fcgen und Entfernen von Kategorien w\u00fcrde recht nervig und \u2013 wenn nicht konsequent durchgef\u00fchrt \u2013 im Nachhinein ziemlich aufw\u00e4ndig werden. Darum ist YouCat viel bequemer. Die aktuellen Artikel der Kategorien werden angezeigt, sind entfernbar und aus allen verf\u00fcgbaren Artikeln sind neue ausw\u00e4hlbar. Die Artikel k\u00f6nnen zentral \u00fcber das Plugin verwaltet werden:<\/p>\n<p><strong><em>YouVid<\/em> <\/strong>steuert die Videos, die im YouTube-Player auf der eLerner-Blog Startseite laufen.<\/p>\n<p>Der Player bekommt seine Videos durch einen &#8222;Zufallsgenerator&#8220;, der die vorhandenen Videos erfasst und eines ausw\u00e4hlt, das angezeigt werden soll. Vorher waren die Videos direkt in einem <a href=\"http:\/\/de.wikipedia.org\/wiki\/Feld_%28Datentyp%29\" target=\"_blank\" rel=\"noopener noreferrer\">Array<\/a> hinterlegt, was aber zur Folge hatte, dass st\u00e4ndig in den Code des <a href=\"http:\/\/en.wikipedia.org\/wiki\/Template\" target=\"_blank\" rel=\"noopener noreferrer\">Templates<\/a> geschrieben werden musste, zumal alle &#8222;Nicht-Administratoren&#8220; richtigerweise keinen Zugriff darauf haben. Um dieses Problem zu beheben, wurde eine neue Tabelle in der WP-Datenbank eingerichtet, die nun die relevanten Informationen zu den Videos beherbergt.<br \/>\nYouVid listet die vorhandenen Videos aus der Datenbank auf, kann Videos l\u00f6schen und neue Videos hinzuf\u00fcgen. Ein einfaches aber effektives Tool.<\/p>\n<p><strong><em>YouWordle<\/em><\/strong> &#8222;wordlet&#8220; Artikel des Blogs. Zum n\u00e4hren Verst\u00e4ndnis sollte man zun\u00e4chst wissen, was das ist. Ein <a href=\"http:\/\/www.wordle.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">Wordle<\/a> ist eine Art &#8222;Wort-Wolke&#8220;, die entsteht, indem ein Text auf die H\u00e4ufigkeit von W\u00f6rtern hin analysiert wird.<\/p>\n<div id=\"attachment_3037\" style=\"width: 300px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/elearning.hwr-berlin.de\/blog\/2011\/04\/16\/do-it-yourself-wordpress-plugins\/grundgesetz_wordle\/\" target=\"_blank\" rel=\"attachment noopener wp-att-3037 noreferrer\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3037\" class=\"wp-image-3037 size-thumbnail\" title=\"Grundgesetz Wordle\" src=\"https:\/\/blog.hwr-berlin.de\/elerner\/wp-content\/uploads_elerner\/2011\/04\/Grundgesetz_Wordle-290x290.png\" alt=\"\" width=\"290\" height=\"290\" \/><\/a><p id=\"caption-attachment-3037\" class=\"wp-caption-text\">Bild erstellt via Wordle.net<\/p><\/div>\n<p>Hier z.B. ein Wordle, das aus dem Text des Grundgesetzes entsteht. In diesem Zusammenhang ist direkt noch zu erw\u00e4hnen, dass auch extrem umfangreiche Texte analysiert werden k\u00f6nnen; das macht Wordle garnichts aus. Je h\u00e4ufiger ein Wort vorkommt, desto gr\u00f6\u00dfer, fetter oder sonst wie exponierter wird es dargestellt. Die so entstehende Wolke kann anschlie\u00dfend noch detailliert modifiziert werden. Einstellbar sind Textfarbe, Schriftart, max. Anzahl der W\u00f6rter, kantige oder eher rundliche Form der Wolke, Hintergrundfarbe, vertikale, horizontale oder gemischte Ausrichtung der W\u00f6rter und einige andere Dinge. Anschlie\u00dfend kann man das Wordle gro\u00df darstellen lassen und (leider nur ausschlie\u00dflich) mittels <a href=\"http:\/\/de.wikipedia.org\/wiki\/Screenshot\" target=\"_blank\" rel=\"noopener noreferrer\">Screenshot<\/a> speichern. Das Wordle ist optional via &#8222;Save to public gallery&#8220; in einer \u00f6ffentlichen(!) Gallerie speicherbar. Dies sollte man aber \u2013 wenn \u00fcberhaupt \u2013 nur tun, wenn das Wordle keine sensiblen oder sonstigen, nicht f\u00fcr die \u00d6ffentlichkeit bestimmten, Informationen enth\u00e4lt. Ein sehr sch\u00f6nes Tool, um einen Textinhalt kompakt zu illustrieren. Wordles k\u00f6nnen auf der <a href=\"http:\/\/www.wordle.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">offiziellen Wordle Hompage<\/a> erstellt werden.<br \/>\nDamit die Autoren unseres Blogs bei fehlendem Artikelbild also trotzdem ein sch\u00f6nes Bild integrieren k\u00f6nnen, kann YouWordle aus jedem Blog-Artikel ein Wordle erstellen.<\/p>\n<p>Dazu w\u00e4hlt man zuerst den Artikel aus, der zum Wordle werden soll.<\/p>\n<p>Anschlie\u00dfend nur noch auf &#8222;Wordle erstellen&#8220; klicken und schon ist das Wordle fertig.<\/p>\n<p>Ganz wichtig: Das Wordle wird von Wordle.net erstellt. YouWordle \u00fcbernimmt die Arbeit, den Artikeltext an Wordle zu schicken. Statt also erst den Artikel zu \u00f6ffnen, zu kopieren und anschlie\u00dfend auf Wordle.net einzuf\u00fcgen, w\u00e4hlt man einfach nur direkt den Artikel aus. Au\u00dferdem filtert YouWordle voher den Text noch auf HTML und \u00e4hnliches, damit im Wordle keine unsinnigen W\u00f6rter auftauchen, die eigentlich HTML-Tags sind etc.<br \/>\nYouWordle ist ein sch\u00f6nes kleines Beispiel daf\u00fcr, was man wohl als <a href=\"http:\/\/de.wikipedia.org\/wiki\/Mashup_%28Internet%29\" target=\"_blank\" rel=\"noopener noreferrer\">Mashup<\/a> bezeichnen kann. Also das nutzen vorhandener Ressourcen (hier Wordle), um in Kombination mit seinem eigenen Inhalt etwas neues zu kreieren.<\/p>\n<p>Ich hoffe, ich konnte mit meinem Artikel etwas aufzeigen, dass WordPress weitaus vielseitiger und individueller nutzbar ist, als das WordPress &#8222;Standardpaket&#8220;. Bei Fragen zur Plugin-Erstellung oder zu meinen hier vorgestellten Plugins: ddaniel@hwr-berlin.de<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die meisten, die einen WordPress-Blog betreiben, werden sie kennen: Plugins. Diese kleinen (oder auch gro\u00dfen) Zusatzmodule erweitern die Funktionalit\u00e4t des Blogs. Dabei gibt es Plugins, die die Administration im Hintergrund (Backend) erweitern, verbessern oder erleichtern, z.B. der Spamschutz Akismet, und solche, die direkt (sichtbar) als Funktion in den Blog (quasi das Frontend) eingehen, z.B. die [&hellip;]<\/p>\n","protected":false},"author":30,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[13],"tags":[],"class_list":["post-3008","post","type-post","status-publish","format-standard","hentry","category-werkzeuge"],"_links":{"self":[{"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/posts\/3008","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/comments?post=3008"}],"version-history":[{"count":60,"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/posts\/3008\/revisions"}],"predecessor-version":[{"id":20436,"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/posts\/3008\/revisions\/20436"}],"wp:attachment":[{"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/media?parent=3008"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/categories?post=3008"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.hwr-berlin.de\/elerner\/wp-json\/wp\/v2\/tags?post=3008"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}