 Super, alles klar. Ja, das sind wir ja eine schöne Runde, klein und gemütlich. Kurz erstmal ganz kurz, also mein Name ist Sven Wagner, ich bin ja Hauptberuflich Plaggin-Entwickler und mache das also täglich, was ich euch gleich zeigen werde. Und erstmal eine Frage zur Erfahrung, wer von euch kann denn PHP programmieren? Ja gut, das war schon mal ein Anfang, das war super, eigentlich alle. Gut, hat jemand von euch schon mal Plaggin programmiert? Ah, okay, alles klar, weiß ich nicht. Ja also, zu mir ganz kurz, wie gesagt, ich bin Sven, ich komme aus Hilden, ja 39 Jahre und programmiere Plaggins und gerne mit Schnittstellen rum und da findet mich eh nicht auf Twitter. Ich habe den Vortrag so gemacht, dass wir nicht wirklich viele Folien haben, eigentlich haben wir gar keine Folien außer kurz und meine kurze Vorstellung, sondern ich wollte euch anhand von Praxis-Bahl-Spielen zeigen, wie man ein Plaggin programmiert und was man dazu braucht. Und ja, ich fange mal damit an, was brauche ich lokal auf meinem Rechner, damit ich programmieren kann, ich brauche einen kleinen Server. Und in dem Fall habe ich mich dafür entschieden, einmal Local by Flywheel zu installieren, das ist ein sehr schönes, einfaches Programm, das habe ich auch verkürzt und selber ist kennengelernt. Man kann beispielsweise auch Mem oder Xemp benutzen, aber es hat den Vorteil, wenn ich Local benutze, da brauche ich eben nicht noch großartig, mein WordPress drauf zu kopieren, es runterzuladen, Datenbank einzurichten. Und die auch noch dann halt eben mit, ja gut, alles klar, das ist natürlich ohne wie man jetzt ein bisschen schwierig. Aber auf jeden Fall bei Local ist es so, das ist alles da drin, das kann man alles per Knopfdruck machen. Und das Schöne an Local ist, es baut auch auf eine ziemlich schönen Technik auf, das nämlich so, dass da eine Virtualbox drunter liegt. Sie wird also mitinstalliert, wenn ich das erste Mal Local by Flywheel installiere, in dieser Virtualbox liegt ein Linux und da läuft Docker drauf. Und ich bin eigentlich ein riesen Fan von Docker, nur das Problem von Docker, das ist auf dem Rechner, auf dem Mac und auch auf Windows relativ langsam läuft. Das hat das wunderschön gelöst. Ich kann also auch hier per Klick komme ich dann auch auf die Kommandozeile der einzelnen Docker Container. Und ja, ich kann hier einfach mein WordPress erstellen. Das mache ich jetzt auch einfach mal. Also ich habe jetzt hier, habe ich ja schon ein paar Seiten erstellt, aber das fangen jetzt einfach mal alle von vorne an. Ich erstelle jetzt hier einfach mal WordPress. Und ja, kann einfach hier mal die Standard-Einstellung nehmen. Und sagte mir jetzt einfach mal admin. Seniges Passwort. Jetzt erstellt ihr mir schon eine WordPress-Installation mit Standard-Einstellung. Ich habe dann also, ich habe dann also entsprechend eine PHP-Installation. Das habe ich jetzt vorhin gerade leider nicht gezeigt. Aber die kann man halt eben auch auswählen, welche PHP-Version ich habe. Ich kann auswählen, welche Datenwang ich nehme und so weiter. Das kann ich aber später auch noch ändern. So, jetzt fragte mich hier halt, ob ich den Host-Eintrag machen möchte. Das geht um die Host-Datei, die jeder auf dem Rechner hat. Da stehen dann die DNS-Einträge drin für eure lokale Maschine, sodass ihr dann im Browser auch dann entsprechende Adresse eingeben könnt. Also ich habe jetzt hier diese Seite WCOS gemacht und kann man die jetzt auch einfach angucken im Browser. So, jetzt habe ich hier ein fertig installiertes WordPress. Es ging jetzt sehr, sehr flott und sehr, sehr einfach. Da braucht man sich damit schon nicht mehr rumschlagen. So, das hat diesmal geklappt. Sehr schön. Jetzt habe ich hier mein WordPress drin. Da habe ich dann halt eben, dann habe ich halt die 27, die 20 Themes habe ich da installiert und da habe ich dann erstmal keine Plugins drin. So, und jetzt möchte ich ganz gerne Plugin entwickeln. Im Zweifelsfall möchte ich das eigentlich ganz gerne. Ich möchte mir einen Verzeichnis auf dem Rechner ablegen, wo ich mein Plugin drin habe. Das ist mich ein bisschen nervig eigentlich. Das Ganze irgendwie immer in meinem WordPress drin zu haben. Sondern ich subiere das irgendwo in einem extra Verzeichnis. Ich leg mir einfach mal auf den Desktop ein Verzeichnis an. Ja, bin ich jetzt so da. Genau. Ich mach da mal einen neuen Orten auf den Desktop. So, Plugin. So, und hier lege ich dann, Moment, das Ganze lad ich dann jetzt gleich mal in meinen Entwicklungsumgebungen. So, was ihr vielleicht öfter mal gehört habt, ist halt eben, dass die meisten Leute mit PRP-Storm programmieren. Mittlerweile ändert sich das so ein bisschen. Es gibt nicht eine schöne kostenlose Software. Die kommt tatsächlich vom Microsoft. Die nennt sich Visual Studio Code. Ja doch, Visual Studio Code. Und die könnt ihr kostenlos runterladen. So sieht das Ganze dann aus. Das Schöne an dieser Software ist, dass man da unheimlich viele Plugins einfach reinladen kann. Hier, wenn man hier drauf drückt, hat man so einen Marktplatz. Und dann kann man halt eben suchen, da gibt es WordPress Plugins, da gibt es debugging Plugins und so weiter. Aber auf jeden Fall ist ein relativ großer Marktplatz, wo ich dann, wo ich die Software einfach erweitern kann. Und wie gesagt, das Schöne ist halt eben, dass es kostenlos ist. Und ja, damit arbeiten wir jetzt hier. Es gibt dann natürlich noch andere. Atom ist auch noch ein Editor. Der kostenlos ist, der ist, wovon ist der noch? Weißt du das jemand? Von GitHub, genau, der Atom Editors von GitHub. Der hat auch so eine, der ist halt eben sehr ähnlich. Der sieht anders aus, aber der hat halt eben auch die Möglichkeit, den Plugins zu erweitern. Das ist erstmal relativ leichtgewichtig. Und dann kann man halt so konfigurieren, wie man das gerne haben möchte. So, als nächstes haben wir, machen wir mal das Verzeichnis auf, was wir gerade eben angelegt haben. So, Desktop. So, das ist jetzt erstmal natürlich nichts drin. So, Moment, doch hier ist, genau, hier ist erstmal nichts drin. Und wenn wir jetzt einen Plugin anlegen wollen, dann müssen wir eigentlich einfach erstmal nichts anderes tun, außer eine PHP-Datei zu erstellen und der Name zu geben. Moment, da mach ich das. Mein Plugin.php. So, und um einen Plugin zu haben, muss ich eigentlich erstmal nichts anderes machen, außer den PHP-Eröffnungsteck zu machen und danach einen Kommentar zu schreiben. So sieht der Eröffnungsteck ja aus. Und dann war ich einfach einen Kommentar. So, und jetzt müsst ihr in den Kommentar auch nicht mehr rein, außer zwei Dinge. Einmal der Plugin Name, also Plugin Name, Moment, da fehlt ein N. Mein N streckt ein wenig auf der Tastatur hier. Mein Plugin. Und Description, ich muss also noch eine Beschreibung, ein schönes Plugin. So, Punkt. Das speichere ich jetzt ab. Und jetzt muss ich das nur noch in meinen Server reinbekommen, also in mein Plugin-Verzeichnis, weil ich habe das ja bei mir auf den Desktop gelegt. Das hätte ich eigentlich vorhin machen wollen, aber das fällt mir jetzt gerade erst ein. Ich habe hier in Flywheel die Möglichkeit, ein zusätzliches Plugin zu nutzen, dass ich Volumes, ich glaube, das heißt auch Volumes. Da gibt es einfach nur vier oder fünf Plugins derzeit. Da habe ich dann die Möglichkeit, damit entsprechend Fahre noch hinzuzufügen. Jetzt nehme ich mal das von meinem Desktop, gehen mal auf den Desktop wieder drauf und nehme das Plugin-Verzeichnis und kann jetzt hier dem Container, in dem Innerhalb des Containers, das Verzeichnis da drauf mapen. Also ich kann jetzt hier, also die Verzeichnungsstruktur ist App und Public. Da liegt mein WordPress drin auf dem Container und dann gehen wir einfach weiter, wie ein WordPress gewohnt, dann machen wir WP-Content, slash Plugins und das Verzeichnis können wir jetzt eigentlich nennen, wie wir wollen. Ich mache jetzt einfach meinen Plugin draus, gebt Enter, da brauche ich gar nicht Enter einzugeben und klick auf Remap Volumes. Und jetzt lädt er mir das Verzeichnis, was ich im Desktop habe, einfach in den Server rein. Und dann kann ich das halt eben auch gesondert irgendwie, ob bei mir auf dem Rechner ablegen muss, dass ich ihn irgendeinen WordPress schmeiß, sodass ich dann meine wieder nicht wiederfinde oder so, ist auf jeden Fall deutlich übersichtlich. Und wenn ich jetzt zurückgehe, Moment. Wo haben wir das denn jetzt, bin ich jetzt doof? Ich hatte doch gerade mal den Server auf. Da ist er doch. Genau, und jetzt lad ich das nochmal neu. Und da ist mein Plugin da. Also das sind für ich nur ein paar Zahlen Code und ja, und hier das reinladen, aber für das Plugin selbst brauche ich halt tatsächlich nur ein paar Zahlen Code. Moment, ich muss mal ganz kurz hier in meine Ordnung machen. Code davor. Also das Plugin wird schon ausgeführt, jetzt passiert hier aber nichts drin. Also ich könnte jetzt zum Beispiel, also ich kann jetzt hier jeglichen Code ausführen in PHP und es wird mit WordPress ausgeführt. So, ich kann jetzt einfach hier sagen, ich gebe jetzt mal Exit ein, dann beendet der einfach WordPress. Der ladert es einfach nicht weiter zu dem Zeitpunkt, wo das hier lädt, ist WordPress noch nicht ganz da. Also passiert folgendes, Moment, passiert das jetzt nicht. Ach nee, ich muss aktivieren, genau, das sollte ich frisch anrufen. Ich muss aktivieren, damit es läuft. Und jetzt läuft es natürlich so nicht. So, jetzt aktiviere ich es noch mal. So, jetzt ist es aktiv. Wenn ich jetzt noch mal das Exit schreibe, zur Bitte schreiben, so. Jetzt haben wir es. So, jetzt brichtet es ab. Also es wird auf jeden Fall ausgeführt. So, jetzt ist die Sache. Ja, wenn ich in WordPress programmiere, dann kann ich dann natürlich das halt eben eigentlich immer immer innerhalb dieser sogenannten, der sogenannten Hooks. Und es gibt, in WordPress gibt es Action-Hooks und es gibt Filter. Das sind, von Prinzip her, so Sprungziele innerhalb der Programmierung. WordPress hat halt in allen möglichen Stellen diese Sprungziele. Und dann kann ich einfach von außen ansteuern, indem ich halt die Funktion Add-Filter oder Add-Action benutze. Und da kann ich dann meine eigenen Funktionen reinladen. So, das fällt jetzt vielleicht ein bisschen theoretisch an. Wir machen das jetzt einfach mal. Wir machen mal eine Funktion. Und die heißt einfach Filter the Content. Was? So, diese Funktion soll jetzt nichts anderes tun, außer unseren Inhalt, den wir in einem Beitrag schreiben, zu filtern. So, in WordPress gibt es den Action, gibt es den Filter, the content. Auf jeden Post wird das angewendet. Auf jeden Post-Type. Da läuft jeder Inhalt einmal durch und den kann ich dann ändern. So, dann bekomme ich über den Parameter und über den ersten Parameter. Und ich nenne den jetzt einfach mal hier Content. Mach die Klammer auf und dann filtern wir mal was. Machen wir mal einfach Dollar-Content. Gleich. Und dann machen wir einfach im String-Replace einfach mal zu zeigen, wie das funktioniert. So, machen wir einfach mal wie tauschen wir das auch Joomler gegen WordPress aus. So, und das machen wir mit dem Content. Bitte? Ach so, jetzt. Ja, ich sage, mein End klemmt hier. Das hat es auch in Dienstag schon getan. Das sind diese wunderbaren Mac-Tastaturen. Echt? Wir sollten eine Gemeinschaft gründen auf jeden Fall. Das ist echt. Auch das N. Warum? Vor drei Wochen war es das R. Wer hatte das R? So, und dann returnen wir einfach den Dollar-Content. So, wir geben den einfach wieder zurück den Content an den Filter. Gut, das ist jetzt eine Funktion. Die steht erstmal für sich. Da passiert jetzt erstmal nicht viel mit ich muss sie laden. Also machen wir Add-Filter und dann klammer auf und dann nehmen wir den Filter und das ist der erste Parameter. Ist dann immer der Name des Filters, den ich gerne ansprechen möchte und dahinter kommt dann die Funktion, die ich gerne laden möchte. Das ist bei mir natürlich unsere Filter Content Funktion. Moment, jetzt bin ich verrutscht in der Zeit. Genau, und jetzt wendet der die an. Ich habe jetzt auch die Möglichkeit dann auf Parameter anzugeben bei diesen Filtern bei den Filtern. Eine Action wird einfach nur ausgeführt. Die Filter wird einfach nur an der Stelle ausgeführt. Es gibt natürlich Situation wo du einfach nur Code ausführen möchtest von WordPress, da führt WordPress denn auch nur aus. Es gibt aber Sachen die du gerne filtern möchtest wie den Inhalt. Dann reicht das nicht einfach nur was auszuführen weil du kommst ja den Inhalt gar nicht ran. Dafür brauchst du halt eben dann die Filter. Ja, dann habe ich die Möglichkeit dass es bei den Actionhooks auch genauso dann halt eben danach noch Prioritäten anzugeben, weil sie die Frage wann wird das Ding denn ausgeführt. Und ich habe vielleicht auch mehrere Filter die ich auf irgendwas anwenden will. Dann möchte ich erst dass der eine läuft und danach der andere läuft also gebe ich jede Priorität an. Standardmäßig ist das hier die 10. Und da kann man dann halt eben einfach eine ganze Zahl reinschreiben also es gibt tatsächlich auch welche die einfach Plugins die so was ins Minus setzen, damit sie auf jeden Fall vor 0 ausgeführt werden, weil es dann tatsächlich Plugins gibt die das auch auf 0 setzen. Ja und als nächster Parameter kommt dann halt eben noch die Anzahl der Parameter die dir übergeben werden wollen. Wir haben halt eben hier oben ein Parameter, das ist der Content Parameter und deshalb übergeben wir da auch an der Stelle nur ein. So, jetzt speichern wir das mal jetzt legen wir uns noch einen entsprechenden Blockbeitrag an wenn das denn mal lädt So, Beitrag So Jumla ist schön da war das doppelte In wieder und jetzt speichern wir das ganze veröffentlicht es direkt mal und dann gucken wir uns den Beitrag mal an. Der Filter ist aktiv und schon ist WordPress schön nicht mit Jumla genau das verdeutlicht einfach nur mal wie so ein Filter halt grundsätzlich aufgebaut ist beziehungsweise WordPress so grundsätzlich funktioniert was die Programmierung angeht das macht man eigentlich mit allen Sachen man führt nie direkt hier irgendwas aus außer die Filter hier, denn man lädt die Sachen die man programmiert hat da einfach ein Ja das ganze geht dann halt eben auch mit mit mit den mit den Actions also wie gesagt die werden vom Prinzip ja genauso geladen nur heißt das dann halt add action aber komme ich jetzt gleich noch zu ich muss mich ganz kurz mein Zettelchen rausholen das ist jetzt wieder ganz hinten genau, mal kurz gucken wo ich da noch war, genau was wichtig ist bei wenn man plug-ins programmiert benutzt bitte keine Strings, einfach nur so im Text, sondern dafür gibt es in WordPress Funktionen da gibt es die sogenannten i18n Funktionen das sind die Internationalisierungsfunktionen von WordPress meist schaut das dann einfach so aus dass ich beispielsweise also das wir jetzt vom Prinzip ein Fixer springen aber ich mach mal einfach was Neues das schaut dann so aus dass ich dann hier beispielsweise ich hab die Funktion hier mit Unterstrich, Unterstrich, das ist eine Funktion die WordPress bereitstellt in die kann ich dann einen Wert geben aller erstes ist das dann halt der Text das ist Text und als nächstes kommt dann halt noch die Textdomain rein weil WordPress hat eigene Textdomain beziehungsweise eigentlich steht dabei WordPress dann nichts plug-ins haben jeweils eine eigene Textdomain damit die Texte entsprechend zugeordnet werden können die WordPress LED ich jetzt beispielsweise einfach meinen Plug-in Plug-in sagen Moment Moment, das sollte ich schon mal eine Sekunde machen so müsste man dann ein Text schreiben weil damit wird er übersetzbar ich muss nur noch im Plug-in hier oben angeben die Textdomain das gebe ich einmal ich fülle meinen Plug-in an dann sage ich dann wieder meinen Plug-in man sollte da irgendwas was Eindeutiges für sich selbst nehmen man sollte sich einfach sagen nur Plug-in geht halt nicht, das ist schlecht und auch nichts was vielleicht schon belegt sein könnte wie zum Beispiel Wocomers hat auch eine eigene Textdomain die heißt dann auch Wocomers und wenn ich die dann benutze dann kommt dann da einiges durcheinander das macht dann keinen Sinn also wenn dann sollte man was eindeutiges benutzen wenn ich das mache und mein Plug-in dann online stelle auf WordPress.org dann habe ich die Möglichkeit halt die ganzen Sachen online zu übersetzen dafür gibt es dann eine Versetzungsdatenbank von WordPress kann ich mal hier aufmachen die findet ihr unter translate WordPress.org hier kann man einmal WordPress selbst übersetzen ich kann mal suchen hier nach Deutsch genau hier sind die einzelnen WordPress-Versionen aber ich kann auch hier Plug-ins übersetzen so dann gehe ich mal auf 1 drauf so dann sieht man halt eben wie das in Deutsch bisher übersetzt wurde und welche Übersetzung noch warten ich gehe jetzt einfach mal hier rein und dann sieht man hier die Liste also erstmal hier die die Wörter die noch nicht übersetzt wurden und am Ende wahrscheinlich auch hier hat man schon eins übersetzt aber das kann man dann wenn man sich bei WordPress selbst eingeloggt hat kann man die dann übersetzen es hat natürlich auch den Vorteil wenn ihr eins online stellt dann können auch andere Leute das mit übersetzen wenn sie ein Interesse daran haben wenn ihr ein Plug-in programmiert veröffentlicht das dann andere Leute nutzen das und die fragen euch dann eigentlich relativ häufig ja ich will das keine übersetzen wie mache ich das dann am besten dann können die einfach auf die Seite darauf schicken und ja dann können die das dann von da aus übersetzen das gilt aber nicht wenn ich ein Plug-in nur für mich schreibe oder vielleicht für meine Firma für einen Kunden oder sonst für einen anderen dafür gibt es dann die Funktion Load Plug-in Text Domain so das funktioniert bei WordPress so dass ich wie mit der Load Plug-in Text Domain ich hoffe ich suche mal die Funktion ah ja genau grundsätzlich wenn ihr Funktionen sucht die in Plug-in braucht und die ihr von WordPress braucht dann sucht die einfach bei Google grundsätzlich gilt erstmal versucht die Funktionen die in WordPress vorhanden sind zu nutzen das macht sich später auf jeden Fall sehr bezahlt weil man die ganzen Änderungen dann natürlich auch von WordPress mitbekommt die dahinter stecken ich klicke jetzt mal hier drauf so und so schaut das ganze aus also ich lad die halt eben mit der Funktion Load Plug-in Text Domain ich habe dann einmal die Domain die vorne genannt wird also das hatten wir vorhin, das ist aber bei uns das ist jetzt mein Plug-in hier kommt dann halt eben der entsprechende Moment, da kommt erstmal gar nichts rein da kommt erstmal ein False rein und danach kommt halt eben das Verzeichnis wo eure Dateien liegen das ist halt so die Dateien muss den Namen Text Domain haben in dem Fall wieder mein Plug-in und danach kommt dann halt eben das Länderkürzel da kommt ein Baum für euch unterstrich DE klein geschrieben unterstrich DE groß geschrieben und das Ganze macht diese Datei ist dann eine MO-Datei eine PO-Datei und die könnt ihr mit dem PO-Editor übersetzen und wenn ihr das dann abspeichert erstellt ihr automatisch den Punkt MO-Datei und legt die dann automatisch im gleichen Verzeichnis ab ganz oben ist jeweils okay das Formel ist tatsächlich noch gar nicht klar okay dann sind wir hier genau so schaut das Ganze dann aus hier kann ich mir dann halt eben auch anschauen was genau dann da drin steht in der Funktion was die Funktion dann halt eben genau macht genau damit lad ich dir auf jeden Fall rein die Text Domain und das solltet ihr dann für eure Plug-ins machen die ihr nicht veröffentlicht also jetzt muss ich wieder springen genau so jetzt kommen noch zwei Dinge es gibt einmal die Custom Post ne Moment Custom Post types die gibt's und die bleiben mach mal erstmal das dann ich wie gesagt suche einfach nochmal danach von den Quatschen hab ich ja schon rausgesucht so und die Custom Post types die kennt ihr ja die Custom Post types nicht okay das ist die Beiträge und die die Seiten die ihr in dem Atmen Bereich habt das sind beides die basieren auf Custom Post types man hat jeder Entwickler hat die Möglichkeit eigene Custom Post types anzulegen beispielsweise würde ich jetzt mal sagen wir machen es einfach mal Bücher und das dann nehme ich mir einfach den Quot kopiere den mal daraus das wird schon mal durch meine 23 Bildschirme und fügt den hier ein und dann machen wir einfach mal das wir registrieren den Post Typ Buchs und dann haben wir hier die entsprechenden Funktionen beziehungsweise die entsprechenden Benennung der Menüpunkte die werden hier angegeben und ob der Post Type öffentlich ist, weil es kann auch sein dass ihr beispielsweise ein Custom Post Type intern zur Verwaltung nutzt, dann soll das nach außen gar nicht öffentlich gezeigt werden deshalb kann ich das auf false setzen ganz her wird dann aufgerufen mit der Funktion Register Post Type die braucht man halt dann dazu um diesen Post Typ dann zu registrieren das ist für ich nur diese eine Funktion und was ich hier mache ist hier dann haben wir da auch eine Action kein Filter mehr, das wird dann einfach nur ausgeführt ich muss ja kein Wert mehr filtern dann ich führe einfach den Quot an der Stelle aus registriere bitte den Post Typ und das können wir jetzt mal machen und das hier der Moment, so einmal das ist der Name für ein Buch wenn ich das ganze jetzt nochmal öffne so dann haben wir hier die Buchs, das brauchen nur diese paar Zahlen diese Funktion register Post Type da suche ich auch nochmal kurz eben nach so ich gehe mal direkt auf die richtige Seite so da gibt es noch deutlich mehr Parameter die ich dann da angeben kann um dann entsprechende Einstellungen für den Post Type vorzunehmen aber guckt euch am besten einfach mal die Referenz an was man da alles machen kann zum Beispiel Supports ist so eine Sache ich kann mir zum Beispiel den unten nochmal eine kurze Zusammenfassung anzeigen lassen noch viele andere Sachen dann anstellen und Autor halt eben an und ausstellen also solche Sachen kann ich dann halt eben über diese Parameter machen die dann anschließend hier einfach kommen also schaut sich mein Ruhe an aber das zu dem Post Type mich kann jetzt nicht so um Detail drauf eingehen komme ich noch ein paar andere Sachen jetzt kommen nochmal die Sachen mit den mit den Shortcodes mit den Widgets da gibt es mich dann auch Programmierschnittstellen zu allerdings ist das so eine Sache jetzt wo Gutenberg kommt es wird voraussichtlich so sein und es ist angedacht kann ich dir helfen okay es ist angedacht dass die irgendwann wegfallen werden das heißt also Widgets werden durch Gutenberg Blocks ersetzt und auch die Shortcodes sollen halt so nicht mehr genutzt werden sondern auch über die Gutenberg Blöcke ähm ja ok ich bin dabei über die Gutenberg Blöcke halt einfach eingefügt werden denn diese Shortcodes soll es da nicht mehr geben deshalb ist das so dass die ja oft dauer halt eben wegfallen werden und ich kann jetzt noch drauf eingehen wir können mal kurz gucken wie so was gemacht wird aber vom Prinzip her ist das Thema eigentlich mit den mit diesen Shortcodes und mit diesen Widgets durch also da gibt es halt auch eine Moment hier ist dann so ein Beispiel wie so ein Shortcode halt eben hinzugefügt wird aber ich würde jetzt persönlich davon eher abraten das jetzt zu nutzen da kommt dann halt eben Gutenberg da wird es aber dann erstmal richtig kompliziert und das ist nochmal Thema für sich würde ich gerne irgendwann mal zeigen aber das passt jetzt hier echt nicht rein, das springt alles weil da gehört echt ein eigenes Setup auf dem Rechner es ist leider so, ich hab euch jetzt ja gerade gezeigt wie einfach man ein Plugin erstellen kann mit Gutenberg ich will auch keine Angst machen, davor wird es echt deutlich komplizierter als wir das jetzt gerade gesehen haben, das ist nicht nur ein paar Filter und ich kann mal kurz eine Datei erstellen, sondern dann muss man wirklich Kompose auf dem Rechner installieren und da entsprechende Zusatzprogramme installieren auf der Konsole damit ich die erst mal zum Laufen bekomme damit ich die Lokale erst mal entwickeln kann und da ist noch eine andere Kiste da muss man sich mal mal ich gesondert und intensiv mit auseinandersetzen aber da kommt man wahrscheinlich wenn man da was machen will für WordPress in Zukunft nicht mehr drumherum da sich wirklich tief in JavaScript einzuarbeiten habe ich euch jetzt Angst gemacht? Good WIDGETS kann ich euch auch noch mal kurz zeigen es ist halt es sind halt eben dann hier die ja das habe ich natürlich in die falsche egal so schaut dann halt eben ein Widget aus dem Code und so sieht ein Widget aus interessant da müssen wir kurz warten kann ich mal so lange weiter gucken was ist denn euer Problem ah ich glaube das kann wahrscheinlich eh dann weg ausgehen oder oder ist es wieder da okay alles klar okay ich mach da mal weiter also so schaut dann ein Widget aus man hat also eine Klasse die erweitert wird und da hat man diese Funktionen die man halt eben damit ausführen muss ja war eigentlich immer eine schöne Sache so kommt man relativ leicht ein Widget programmieren aber also ihr könnt es euch gerne noch ein bisschen angucken aber macht nicht so viel Sinn warten, ja ja klar, natürlich ist ja eure ich kann das wirklich echt jedem empfehlen dieses Local zu benutzen weil es so schön einfach ist und da es ist nicht nur einfach, da steckt einfach noch eine richtig geile Technik hinter also sonst hat man immer ein Kompromiss oder irgendwas ist doof, es funktioniert gut aber die Technik ist halt schrott im Hintergrund ich kann mir auch ein Mempserver installieren aber das ist dann eine ganze Konfiguration und so weiter kann ich mich auch da noch darum kümmern also muss nicht unbedingt sein gut da sind wir gerade eben stehen geblieben bei den Widgets die so, ja die wir auch nicht mehr brauchen in Zukunft es gibt noch eine Sache wenn ihr einen Plugin habt, dann habt ihr auch die Möglichkeit das auf WordPress.org zu veröffentlichen thank you auf WordPress.org slash plugins so und, ja das müsste ich mich da einmal einloggen sonst sehen wir noch nicht welchen die entwog nicht so, das genau, wenn ihr dann auf der Plugin Seite seid und gebt einen Rollscout mal ganz nach unten da habt ihr dann die Möglichkeit hier add your Plugin da drauf zu klicken da habt ihr dann noch relativ viel Text erst mal liest euch dem bitte durch weil da steht halt eben auch drin was ihr beachten müsst wenn ihr das Plugin raufladet weil einfach so irgendwie ein schnipsel Code raufladen ist auch nicht sondern so ein paar grundsätzliche Dinge müssen halt eben auch erfüllt sein und, ja ich kann hier habe ich den links dann steht da noch mal ein bisschen mehr Text denn ich auch durchlesen sollte und hier unten habt ihr die Möglichkeit einfach euer Plugin so wie ihr es programmiert habt dann da rauf zu laden und danach wird das erst mal gereviewed das heißt, da setzen sich ein paar Leute hin dann ist vielleicht prüfen sie immer noch auf vieren ich weiß es nicht auf jeden Fall wird das halt eben einmal gereviewed und nach dem Review wird das freigegeben und dann habt ihr dann halt eine entsprechende Seite wo da euer Plugin angezeigt wird und was ihr nur beachten müsst das zeige ich euch gleich anhand eines Plugin Boiler Plates wie ihr müsst dann ein Readme noch hinzufügen ihr könnt aber auch noch Screenshots und so weiter hinzufügen das macht ihr alles innerhalb des Plugin Verzeichnisses also eueres Verzeichnisses lokal auf der Platte da komme ich mich jetzt auch schon zu den Plugin Boiler Plates es gibt im Internet so ein paar Seiten wo man sich eine Plugin Vorlage unterladen kann da ist schon mal so eine gewisse also das nennt man dann Boiler Plate diese Plugin Vorlagen da ist zumindest mal so eine Grundstruktur eines Plugins drin also wo dann als Vorgabe wie könnte man der seine Dateien halt eben strukturieren damit man nicht immer wieder bei 0 anfängt nach der EU packe ich jetzt was hin in meinem Plugin und dann mache ich das mal auf ähm Moment jetzt komme ich hier durch da war es doch manchmal zu weiter zu hier es gibt zum Beispiel den WordPress Plugin Boiler Plate Generator also es gibt zum einen gibt es Plugin Boiler Plates noch auf Github da könnt ihr auch mal schauen sonst könnt ihr hier halt eben einfach euer Plugin eurer Plugin erstellen lassen ich mach das jetzt mal wie kann ich diese Grundangaben machen wie mein Plugin mit N mein Plugin noch mal als Slack eine Plugin URL mein Plugin Punkt org eine Email-Adresse und kopiere ich das einfach nochmal aber so wir haben ein Plugin in Form einer ZIP Datei da sind dann alle Dateien drin ich lad das mal runter Moment so jetzt sollte das unten sein das habe ich kurz hier im Visual Studio Code ach nee ich muss jetzt mal entpacken machen wir das noch alles klar jetzt habe ich das mal entpackt hier liegen Dateien du könntest natürlich ein bisschen besser sehen wenn wir das im Visual Studio Code auf dem Desktop öffnen wir das einfach mal hier habt ihr die ganzen Dateien hier ist mal nichts drin das ist eine Index Datei die ist dafür da um falls ihr auf dem Webserver der Index angeschaltet ist dass man sehen kann was auf eurem Server drauf ist dass dann nichts angezeigt wird aber hier kommt ein Plugin und hier habt ihr so ein Grundgerüst hier seht ihr oben die Lizenz ist auch super wichtig die braucht ihr auf jeden Fall auch die liegt dann aber auch hier in dem Boilerplate hier ist die License da müsst ihr halt eben auch drauf achten weil WordPress ist halt eben GPL und euer Plugin sollte dann auch GPL sonst kriegt ihr das wahrscheinlich nicht genehmigt also kriegt ihr das nicht genehmigt auf WordPress.org also ja das müsst dann auf jeden Fall in dem Plugin abgelegt sein und hier sieht man halt eben so ein bisschen entsprechende Struktur habe ich zum Beispiel so ein Aktivierungshug das passt dann ausgeführt wenn ich mein WordPress aktiviere wenn ich mein Plugin aktiviere dann habe ich noch ein deaktivierungshug das tut dann dasselbe wenn ich es deaktiviere und ja ein Plugin den Aufruf des Plugins und das passt ja in den anderen Dateien halt eben ausgeführt also hier ist dann mein Plugin die Klasse also es ist halt eben alles objektorientiert ich weiß nicht wie weit ihr da mit PHP seid aber ich kann ja jedem Entwickler eh nur ans Herz legen objektorientiert zu programmieren aber das ist auf jeden Fall eine schöne Vorlage wo man mal mitarbeiten kann guckt es euch mal einfach in Ruhe an geht mal ein bisschen durch die Dateien durch also vom Prinzip ist es aber eigentlich selbsterklärend ja jetzt hab ich ich bin es jetzt zurück ja was halt zu beachten ist wenn ich ein Plugin online stelle ich brauche SVN, das ist halt eben das Subversion Subversion ist halt eben ein System womit ich meine Software halt eben versionieren kann so wenn ich dann neue Version hab dann packe ich leg ich dann halt eben das Verzeichnis dann eine neue Version rein und dann ja ich muss ein paar Sachen machen auf jeden Fall damit ich dann die dass das dann wieder rein bekommen ins SVN dann wird das mich automatisch auf WordPress.org abgedatet ist aber nochmal ein anderes Thema ja nutzen kann ich nur sagen ja wenn ihr vielleicht nicht unbedingt so tief in die Programmierung reingehen wollt ihr könnt bei allen Plugins auf WordPress.org mithelfen einmal könnt ihr einfach wenn ihr Probleme mit dem Plugin habt in den Fallen schreibt den Leuten das ins Forum irgendwie wenn dann Fehler ist oder so das könnt ihr auch nicht abzufotografieren geht auf www.wpcgn.de das ist mich der Vortrag vom letzten Dienstag und da steht das genau so drauf macht damit im Forum helft damit oder übersetzt einfach mit bei den anderen Plugins helft den Leuten auf jeden Fall ein bisschen aus bei den Plugins die ihr gut findet und ja das freut den Plugin entweder klar ja ich bin schon fertig anscheinend es ging wohl schnell Zehner ist ein bisschen durcheinander aber jetzt ist es Zehner klein um noch Zeit zu fragen Ach so Jero, wenn ihr Fragen habt dann ja haut rein ich fange mal vorne an, links kommt nichts doch Sven warum macht man das Plugins zu veröffentlichen im Repo ich frage ein bisschen Gehäße ich war ich selber an Plugins im Repo hatte und habe dann sehr skurrile Support-Fragen über das Forum bekommen von angefangen vom Support für die eigene Website über Incompatibilität mit anderen Plugins für die ich nicht verantwortlich war wenn man nicht eine Leitversion im Repo veröffentlicht und hat eigentlich eine Proversion in der Hinterhand über die man Geld machen will warum macht man das noch ja Altruismus weil man an den Open Source Gedanken glaubt also ich bin halt eben davon halt eben, dass man gewisse Dinge teilt dann kann natürlich auch, dass den Open Source Gedanken dazu nutzen zusätzlich dann noch mit seinen Sachen Geld zu verdienen aber da sollte man auch irgendwie nicht alles ausblenden und einen Button dann haben der noch funktioniert und für alles andere Geld verlangen das sollte man schon ein bisschen geschickt machen aber grundsätzlich halt finde ich Open Source halt eben sehr gut ja fällt mir ehrlich gesagt sonst nicht mehr viel zu ein man muss halt mit den Leuten leben wenn die halt eben, da gibt es immer wieder Leute die einen dann tot nerven können mit so du bist schuld oder ich geb dir nur ein Stern und so das hat mir irgendwas kaputt gemacht du kannst gar nichts dafür, das passiert halt aber ich meine, Idioten laufen überall rum also kannst nichts gegen tun ja, hallo ich hab ne kombinierte Frage, ich hab damit nichts zu tun gehabt bislang mit Pluck in Development also die erste Frage wäre die Funktion Ad Filter, hat ne Priorität bekommen bedeutet das, dass irgendwie ich davon ausgehen muss, dass wenn ich eine Priorität von 10 oder 12 oder 13 hab unter welchen Umständen wird das dann nicht ausgeführt ist meine erste Frage und die zweite Frage hat damit gar nichts zu tun, das geht um Gutenberg und sie sagten ja, dass das mit JavaScript gemacht ist und das JavaScript lernen müsste um Pluck in zu machen ist da ein Framework dahinter, sowas React oder ja, genau also zweit, direkt mal, ja, kann das React stecken dahinter das wird, das Wort auf React auf und zur ersten Frage ja, die Prioritäten werden halt eben ja, eins wird zuerst ausgeführt und tausend halt eben dann bei tausend, also ausgeführt werden aber alle ich krieg die da nicht mit raus ich kann eine gleiche Priorität haben die das reingeladen hat in also in dem Logal by Freewill du hast in eine andere diese Plagin benutzt werden danach diese Plagins auf dein Ordner von diese Installation von WordPress eingeladen oder danach musst du wie machst du den Deployer danach Ach so, wie ich den Deployer danach mache ja, weil ich meine du hast in einer anderen Ordner alle zusammen die Plagins für alle deine Installation vielleicht eine komplette Webseite drüber laufen lassen, dann kann ich da auch einfach auf den Ordner drauf gehen also ich habe ja lokal, habe ich ja alles liegen ansonsten ja, Moment hier, gehe ich rein wenn ich jetzt hier mal schaue, ich habe ja hier das Public Verzeichnis das App Verzeichnis, genau, das ist ja dann hier gemappt, das habe ich dann hier praktisch bei mir auf dem Rechner drauf da könnt ich theoretisch gesehen, kann ich da dann auch eine komplette Webseite packen also ich muss jetzt nicht, wie ich das gemacht habe das wäre jetzt speziell noch für Plaggin Entwicklung das irgendwo auf dem Rechner ablegen ich finde das einfach sauberer, aber wenn ich eine komplette Webseite habe kann ich jetzt auch innerhalb dieses Verzeichnis machen ja noch eine Frage oder ich hatte nur ganz kurz eine Ergänzung für die Ressourcen du hattest den Codex gezeigt, der Codex ist hoffnungslos veraltet und wird dringend von abgeraten den zu benutzen ich möchte kurz die aktuelle Ressource durchgeben die heißt developer.wordpress.org developer.wordpress.org und von da aus geht es weiter in sowohl Funktionsreferenzen als auch Slash Plugins das ist das Plugin Handbook und da findet man dann so Sachen wie Custom Postcards, wo du aus dem Codex guckst die Sachen habe ich auch verlinkt ich habe auch den Codex verlinkt, das muss ich da noch wegdenken aus dem Dokument, das muss ich noch auslöschen ja, genau das könnte ich auf WPCN wie gesagt WPCN.de angucken die Versionierung lokal, muss dir auch mit SVN sein oder geht das mit Git? es geht klar SVN wird dann nur auf dem WordPress ja, nur wenn man das Plugin wirklich auf WordPress.org haben will, dann muss man leider SVN benutzen es gibt aber jetzt auch den Local ja, lokal, man kann das aber umgehen, dann muss man auf GitHub gibt es jetzt den nächsten Actions, das ist momentan als noch ein Beta-Betrieb, da kann man auch mit Anmeldung nur rein und man kann mit Anmeldung rein und irgendwann wird man dann mal freigegeben für diese Actions und da gibt es dann so eine Action, wo man dann halt eben von 10 abgibt und das programmiert wo dann die Daten von GitHub rüber zu SVN geschoben werden, da brauche ich nur noch ein Bit und dann macht er automatisch eine neue Version, neues Release fertig für SVN, das ist deutlich bequemer ja, kann ich nur empfehlen, aber muss man halt eben mal abwarten, um wie bis sie das mit freigegeben für jeden ja, das ist egal, wenn man dann nicht auf WordPress.org veröffentlichten will dann macht man das einfach, aber geht ich in dem Tag keine SVN mit uns privat also, ja ja, dann würde ich sagen gerne