Simeth | WordPress – Plugins, Themes und Blöcke entwickeln | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 1006 Seiten

Reihe: Rheinwerk Computing

Simeth WordPress – Plugins, Themes und Blöcke entwickeln


1. Auflage 2022
ISBN: 978-3-8362-9000-5
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

E-Book, Deutsch, 1006 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-9000-5
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Das Handbuch für Ihren Einstieg in die professionelle Entwicklung für WordPress

Mit der Entwicklung eigener Plugins, Themes und Blöcke erschließen Sie sich das gesamte Potenzial von WordPress – ohne Einschränkungen und ganz nach Ihren Bedürfnissen. Florian Simeth führt Sie in die Grundlagen der professionellen Entwicklung ein und stellt Ihnen das vollständige Expertenwissen für Ihren Erfolg zur Verfügung. Sie steigen tief in die Entwicklungsprozesse ein und lernen die relevanten APIs kennen. Profitieren Sie von zahlreichen Beispielprojekten und Best Practices . Inkl. UX-Crashkurs für gutes Webdesign. Aktuell zu WordPress 6.

  • Das Handbuch für Entwickler und Agenturen
  • Entwicklungsumgebung kennenlernen, Konzepte verstehen, Best Practices einsetzen
  • Inkl. APIs, Full-Site-Editin, Debugging, eigene Inhaltstypen, Internationalisierung, Multisite u.v.m.

Aus dem Inhalt:

  • Die ersten Schritte im Entwicklungsprozess
  • Plugins, Themes und Blöcke entwickeln
  • Crashkurs UX für gutes Theme-Design
  • Performance, Sicherheit, Privatsphäre
  • jQuery, React und Underscore in WordPress nutzen
  • Internationalisierung
  • Fehler finden und beheben: Debugging
  • Eigene Inhaltstypen
  • Externe Daten nachladen
  • Auf Datenbanken zugreifen
  • Arbeiten mit der REST-API
  • Multisite-Umgebung aufsetzen
  • Inhalte dynamisch einfügen
Simeth WordPress – Plugins, Themes und Blöcke entwickeln jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material




  Materialien zum Buch ... 20


  Vorwort ... 21


TEIL I.  Die Entwicklungsumgebung kennenlernen ... 27


  1.  Erste Schritte im Entwicklungsprozess ... 29


       1.1 ... WordPress installieren ... 31

       1.2 ... Lokale Laufzeitumgebungen ... 42

       1.3 ... Entwickeln mit dem Texteditor? ... 45

       1.4 ... Software-Entwicklungstools einrichten ... 47



  2.  Bewährte Konzepte bei der Entwicklung mit WordPress ... 57


       2.1 ... Der Slug: Den Namen für das Projekt richtig wählen ... 57

       2.2 ... Den richtigen Lizenzvertrag wählen ... 59

       2.3 ... Coding-Standards: Welche sollten verwendet werden? ... 62

       2.4 ... Dokumentationsstandards: Welche sollten verwendet werden? ... 77

       2.5 ... Präfixe und Namespaces ... 83

       2.6 ... Objektorientierung in WordPress ... 85

       2.7 ... Empfohlene Datei- und Verzeichnisstrukturen ... 85

       2.8 ... Online-Nachschlagewerke für die WordPress-Entwicklung ... 88



  3.  Überall alles verändern: Die Hooks als Grundkonzept in WordPress ... 93


       3.1 ... Was sind Actions und Filter? ... 94

       3.2 ... Häufig genutzte Actions und Filter in WordPress ... 104

       3.3 ... Filter und Actions finden ... 107

       3.4 ... Arbeiten mit Filtern und Actions ... 111



TEIL II.  Plugins, Themes und Blöcke entwickeln ... 127


  4.  Ein Plugin erstellen ... 129


       4.1 ... Grundwissen zu Plugins ... 129

       4.2 ... Das erste eigene Plugin ... 144

       4.3 ... Pfadangaben ... 162



  5.  Ein Theme erstellen ... 175


       5.1 ... Grundwissen zu Themes ... 175

       5.2 ... Crashkurs: Gutes Webdesign ... 188

       5.3 ... Ein Classic-Theme erstellen ... 208

       5.4 ... CSS für Themes ... 269

       5.5 ... Seitenleisten und Widgets erstellen ... 286

       5.6 ... Menüs erstellen ... 301

       5.7 ... Wenn Themes Kinder bekommen: Child-Themes ... 306

       5.8 ... Ein Block-Theme entwickeln ... 308

       5.9 ... Themes testen ... 329

       5.10 ... Zusammenfassung ... 333



  6.  Einstellungsseiten generieren und das Dashboard erweitern ... 335


       6.1 ... Haupt- und Untermenüs erstellen ... 335

       6.2 ... Konsistenz im Layout: Die WordPress-UI nutzen ... 342

       6.3 ... Einstellungsfelder generieren ... 358

       6.4 ... Dashboard-Widgets erstellen ... 373



  7.  Performance und Sicherheit ... 379


       7.1 ... WordPress-Projekte absichern ... 379

       7.2 ... Den Turbo aktivieren: Mehr Performance in WordPress-Projekten ... 411



  8.  CSS und JavaScript in WordPress ... 429


       8.1 ... Skripte registrieren, einhängen und entfernen ... 431

       8.2 ... Integrierte JS- und CSS-Dateien in WordPress ... 441

       8.3 ... Backbone und Underscore ... 445

       8.4 ... Crashkurs jQuery ... 446

       8.5 ... Crashkurs React ... 460

       8.6 ... Internationalisierung ... 485

       8.7 ... Hintergrundaktivitäten mit der Heartbeat-API ... 489



  9.  Einen Block erstellen ... 495


       9.1 ... Grundwissen zu Blöcken ... 496

       9.2 ... Einen Block erstellen ... 501

       9.3 ... Block-Vorlagen erstellen ... 546



10.  Internationalisierung ... 555


       10.1 ... Grundwissen ... 556

       10.2 ... Übersetzungsdateien und Gettext ... 557

       10.3 ... Ein Plugin zur Übersetzung vorbereiten ... 557

       10.4 ... Ein Theme zur Übersetzung vorbereiten ... 560

       10.5 ... Übersetzungsfunktionen ... 561

       10.6 ... JavaScript-Inhalte (und Blöcke) übersetzen ... 567

       10.7 ... Eine Übersetzungsdatei erstellen ... 569



11.  Fehler finden und beheben: Das Debugging ... 581


       11.1 ... Kompatibilität ... 582

       11.2 ... Error-Logging in WordPress ... 588

       11.3 ... Debugging aktivieren und Skripte analysieren ... 597

       11.4 ... Ein WordPress-Plugin zum Debuggen ... 605

       11.5 ... JavaScript debuggen ... 607



TEIL III.  Ihr Projekt erweitern und individualisieren ... 611


12.  Schöne URLs mit der Rewrite-API ... 613


       12.1 ... Warum »schöne« URLs? ... 613

       12.2 ... Was ist ein Permalink in WordPress? ... 614

       12.3 ... Wie WordPress schöne URLs auflöst ... 616

       12.4 ... Eigene Permalink-Strukturen anlegen ... 624

       12.5 ... Ein alternativer Weg zu neuen Permalink-Strukturen ... 636



13.  Mit eigenen Inhaltstypen arbeiten ... 641


       13.1 ... Benutzerdefinierte Artikeltypen ... 641

       13.2 ... Benutzerdefinierte Taxonomien ... 660

       13.3 ... Das Kind braucht einen Namen: Terme für Taxonomien erstellen ... 670

       13.4 ... Zusätzliche Daten zu Inhalten speichern mit der Metadaten-API ... 674

       13.5 ... Mit Inhaltstypen im Frontend arbeiten ... 686



14.  Externe Daten nachladen mit der HTTP-API ... 697


       14.1 ... Was ist eine HTTP-Abfrage? ... 698

       14.2 ... HTTP-Abfragen mit WordPress ... 702



15.  Die Schnittstelle zur Außenwelt: Die REST-API ... 719


       15.1 ... Was bedeutet »REST«? ... 719

       15.2 ... Abgrenzung zu HTTP ... 720

       15.3 ... Schlüsselkonzepte der REST-API ... 721

       15.4 ... Mit Endpunkten arbeiten ... 725

       15.5 ... Die REST-API mit eigenen Routen erweitern ... 744

       15.6 ... Controller-Klassen nutzen ... 766

       15.7 ... Mit Metadaten und REST-Feldern arbeiten ... 768



16.  Benutzer- und Rechtemanagement ... 785


       16.1 ... Arbeiten mit Benutzern ... 786

       16.2 ... Rollenverteilung: Rollen und Benutzer-Befugnisse (Capabilities) ... 801

       16.3 ... Daten zu Benutzern speichern: Die Metadata-API ... 819



17.  Zugriff auf die Datenbank ... 825


       17.1 ... Eigene Datenbank-Verbindungen ... 825

       17.2 ... Benutzerdefinierte Tabellen ... 827

       17.3 ... Die wichtigsten Datenbank-Klassen in WordPress ... 849



18.  Dateien auf dem Laufwerk manipulieren ... 873


       18.1 ... Was ist die Filesystem-API? ... 873

       18.2 ... Mögliche Einsatzzwecke ... 873

       18.3 ... Lokale Daten manipulieren ... 875

       18.4 ... Entfernte Daten manipulieren ... 893



19.  Zeitgesteuerte Aufgaben (Cronjobs) ... 897


       19.1 ... Was ist ein Cronjob? ... 897

       19.2 ... Planung von Cron-Ereignissen ... 900

       19.3 ... Eigene Intervalle erstellen ... 905

       19.4 ... Einen Cronjob neu planen ... 906

       19.5 ... Ein einzelnes Event planen ... 907



20.  WordPress auf der Kommandozeile: Die WP-CLI ... 911


       20.1 ... Was ist die WP-CLI und wofür braucht man sie? ... 911

       20.2 ... WP-CLI installieren und konfigurieren ... 913

       20.3 ... WP-CLI-Befehle auf der Kommandozeile nutzen ... 915

       20.4 ... Eigene CLI-Befehle programmieren ... 920



21.  Mehrere Websites in einer Installation: Die Multisite-Umgebung ... 937


       21.1 ... Eine Multisite-Installation durchführen ... 939

       21.2 ... Datenbanken ... 945

       21.3 ... Multisite-Funktionen ... 946

       21.4 ... Benutzer in Multisite-Umgebungen verwalten ... 957



22.  Inhalte dynamisch einfügen mit der Shortcode-API ... 961


       22.1 ... Was sind Shortcodes? ... 961

       22.2 ... Eigene Shortcodes registrieren ... 964

       22.3 ... Shortcode-Funktionen ... 969



23.  Alles gesund? Die Site-Health-API ... 971


       23.1 ... Der Website-Status ... 971

       23.2 ... Website-Bericht ... 975



  Schlusswort ... 979


  Index ... 981


Vorwort


WordPress ist ein Wunderkind. Kein anderes Content-Management-System (CMS) ist in den letzten Jahren so stark gewachsen. Anfang 2022 wird WordPress von knapp 43 % aller Websites verwendet, die von W3Techs[ 1 ] ausgewertet werden. Das entspricht derzeit einem Marktanteil von 64 %[ 2 ]. Und dem kann man ruhig Glauben schenken, wenn man bedenkt, dass mittlerweile Größen wie das Lifestylemagazin Vogue, Sony Music oder die Blogs der Frankfurter Allgemeinen Zeitung auf WordPress setzen.[ 3 ]

Seit 2004 steht WP, wie WordPress oft kurz genannt wird, nun schon zum Download bereit. Im Januar 2004 gab Matt Mullenweg, einer der Gründer, WordPress für die globale Verwendung frei.

Ursprünglich entstand WordPress aus dem Weblogsystem b2/cafelog, das zur damaligen Zeit nicht mehr weiterentwickelt wurde. Nun könnte man meinen, dass WordPress lediglich ein Blogging-System sei. Über die letzten fast 20 Jahre hat es sich aber sehr umfangreich weiterentwickelt, was letztlich auch dazu beitrug, dass es so stark wachsen konnte. Dabei hat es andere beliebte Systeme wie Drupal und Joomla weit hinter sich gelassen. (Drupal und Joomla! haben nur noch einen Marktanteil von nicht einmal 2 %.

Was macht WordPress so beliebt? Zum einen ist es als Open-Source-Software kostenlos verfügbar. Seit jeher können nicht nur Unternehmen, sondern auch Individualisten eine Website erstellen und bearbeiten. Ganz easy. Letztlich war genau das die Intention von Matt: Eine Website soll von jedem sehr einfach und ohne großes technisches Know-how erstellt und verwaltet werden können.[ 4 ] Und genau das hat die Community schlicht richtig gemacht. Durch die berühmte 5-Minuten-Installation kann jeder ohne Programmierkenntnisse in genau dieser Zeit loslegen. Erstellen einer Datenbank? Konfiguration von PHP-Dateien? Bei der Nutzung der 5-Minuten-Installation ist die Konfiguration von PHP-Dateien nicht notwendig. Viele namhafte Webhoster gehen inzwischen aber noch weiter. Die 1-Klick-Installation ist mittlerweile Standard. Das heißt: Die Einrichtung erfolgt vollautomatisch.

Nicht zuletzt die Webhoster waren es, die die konstante Weiterentwicklung des WordPress-Kerns maßgeblich vorangetrieben haben. Viele der auf WordPress spezialisierten Unternehmen machen beispielsweise beim Five for the Future-Programm[ 5 ] mit. Dabei sind alle dazu aufgefordert, 5 % ihrer Ressourcen für die WordPress-Entwicklung zur Verfügung zu stellen. Oft werden extra Arbeitnehmer angestellt, um diese freiwillige Vorgabe zu erfüllen. So können einige Personen Vollzeit am WordPress-Kern, den Übersetzungen, an Dokumentationen, im Bereich Design und in vielen weiteren Teilbereichen arbeiten. Denn WordPress besteht aus mehr als nur aus dem Code.

Die konstante Weiterentwicklung, die sehr starke Verbreitung und nicht zuletzt die Unterstützung der gesamten Community haben dazu geführt, dass aus WordPress nicht mehr nur ein umfangreiches Content-Management-System, sondern mittlerweile eine »Web-Plattform« geworden ist. Würde man heute eine solche Plattform entwickeln wollen, würde es 151 Jahre dauern.[ 6 ]

Es war noch nie sinnvoll, das Rad neu zu erfinden. Sie werden in diesem Buch sehen, wie einfach es ist, WordPress in kürzester Zeit aufzusetzen und so eine Plattform mit funktionsfähiger Benutzerverwaltung einzurichten, die sich auch noch von außen über eine REST-Schnittstelle[ 7 ] steuern lässt. Projekte lassen sich auf diese Weise sehr schnell umsetzen, ohne dass Sie sich im Detail mit diversen Thematiken auseinandersetzen müssen.

WordPress macht es Ihnen einfach, Erweiterungen zu entwickeln. Doch auch nach so vielen Jahren gibt es ein großes Problem: Die Dokumentation ist noch immer unvollständig und auf Deutsch nicht verfügbar. Inhalte lassen sich zwar kostenlos im Netz finden. Diese sind jedoch oft weit verstreut, in kleine Code-Schnipsel zerteilt und nicht selten einfach so alt, dass sie in einem neuen Projekt gar nicht mehr funktionieren würden. Deshalb möchte ich Ihnen mit diesem Buch einen umfangreichen Einblick in die WordPress-Entwicklung geben.

Für wen ist dieses Buch?


Der Schwerpunkt des Buches liegt darauf, Ihnen zu zeigen, wie Sie mit WordPress professionelle Plugins, Themes und Blöcke entwickeln können.

Dabei richtet es sich in erster Linie an Entwickler und Entwicklerinnen, die bereits Programmiererfahrung haben, sich schnell einarbeiten können und sich nicht erst durch unzählige Blogeinträge und Tutorials arbeiten möchten. Der Umfang dieses Buches ist sehr groß. Nicht zuletzt, weil WordPress mittlerweile sehr mächtig geworden ist. Dazu kommt, dass in typischen Webprojekten viele Frameworks zum Einsatz kommen können. Diese möchte ich in diesem Buch ebenfalls mit Crashkurs-Kapiteln anführen. Somit ist mein Buch ideal, wenn Sie mit WordPress neu starten, oder aber auch für Programmiererinnen und Programmierer, die etwas nachschlagen wollen.

Ich selbst bin seit mehr als 20 Jahren Webentwickler und beschäftige mich seit 15 Jahren mit WordPress. Lange gab es keine vollständig deutschsprachige Anleitung, die sich mit der WordPress-Entwicklung eingehend befasste. Dadurch entstand meine Website wp-plugin-erstellen.de, die sich als eine Art deutsche Funktionsreferenz versteht. Aber der Kern von WordPress verändert und erweitert sich ständig. Das stellte ich nicht zuletzt während meiner Recherchearbeiten für meinen monatlichen Newsletter (https://revue.florian-simeth.de) fest. Es war an der Zeit für etwas Umfangreicheres und eine Darstellung der Zusammenhänge und Grundlagen. Etwas, das den Einstieg erleichtert, aber auch einen guten Überblick über die die professionelle Entwicklung mit WordPress gibt. Etwas, das Sie immer wieder zur Hand nehmen können, wenn ein neues Projekt ansteht. Und genau das soll das Ziel dieses Buchs sein. Wenn Sie es gelesen haben, haben Sie die Kernkonzepte der Plattform verstanden, können Entwurfsmuster erkennen und anwenden und wissen, welche Möglichkeiten Ihnen für einen professionellen Entwicklungsprozess mit WordPress zur Verfügung stehen.

Der Aufbau des Buches


Nun stellt sich die Frage: Wie soll ein umfassendes Handbuch für die WordPress-Entwicklung aufgebaut sein? Dazu habe ich mir persönlich meinen Workflow angesehen, hier am Beispiel eines Plugins.

In der Regel beginnt mein Workflow mit der Einrichtung der Entwicklungsumgebung. Danach setze ich das Plugin initial auf und richte es ein. Dazu gehört das Erstellen von JavaScript-, CSS- sowie von Übersetzungsdateien. Meist steht fest, welche Einstellungsmöglichkeiten ein Plugin haben soll. Die Einstellungsseiten lege ich in diesem zweiten Schritt meist schon an. Zwar entsteht hier bereits Code, aber das eigentliche »Befüllen« des Plugins mit Inhalt erfolgt erst im dritten Schritt. Und der ist ganz individuell und der geschriebene Code richtet sich danach, was das Plugin können muss.

Wird der obige Workflow zugrunde gelegt, ist ein Basis-Kapitel unumgänglich. Im ersten Teil beginnt das Buch daher mit einer umfassenden Beschreibung der Entwicklungsumgebung. Hier werden Sie lernen, wie WordPress lokal installiert wird und wie es optimal mit einem Entwicklungstool verbunden wird. Danach beschreibe ich einige Konzepte, die sich in der WordPress-Entwicklung bewährt haben. Am Ende des ersten Teils geht es dann schon ans Eingemachte. Sie werden lernen, was Actions (dt. »Aktionen«) und Filter sind. Das Verständnis dieser sogenannten Hooks ist unerlässlich für alle nachfolgenden Kapitel. Denn damit lässt sich, wie die englische Bezeichnung vielleicht schon erkennen lässt, eigener Code in WordPress »einhaken«.

Im Hauptteil des Buches (Teil 2) beschäftigen wir uns dann eingehend mit der Entwicklung von Plugins, Themes und Blöcken. Zu jedem dieser Themen gibt es eine Einleitung mit anschließenden Codebeispielen. Dazu benötigen die meisten Webprojekte an diversen Stellen Einstellungsmöglichkeiten sowie CSS- und JavaScript-Code. Auch dies werde ich im zweiten Teil eingehend erläutern.

Das Buch ist zwar für den deutschsprachigen Raum geschrieben, nichtsdestotrotz werden viele Projekte in der realen Wirtschaft nicht um Internationalisierung und Mehrsprachigkeit umhinkommen. Deswegen habe ich diese Themen ebenso wie das Kapitel über Sicherheit und Privatsphäre noch mit in den zweiten Teil aufgenommen. Zu guter Letzt existiert auch ein Kapitel zum Thema Debugging im zweiten Teil. Denn ein Projekt wird bereits während der Umsetzungsphase permanent getestet.

Wie oben angedeutet, geht es dann im dritten Teil um die Aufgabe, die ein Plugin, ein Theme oder ein Block übernehmen soll. Da dies individuell sein kann, ist der letzte Teil des Buches den APIs, also den Schnittstellen, von WordPress gewidmet. Hier picken Sie sich die Dinge heraus, mit denen Sie arbeiten wollen. Soll das eigene Plugin beispielsweise mit der Außenwelt verbunden werden, sind Sie im Kapitel zur REST-API bestens aufgehoben. Möchten Sie externe Daten nachladen, sollten Sie sich das Kapitel zur HTTP-API ansehen.

Hinweise zu Code-Beispielen


Mir persönlich geht es beim Lesen von Büchern...


Simeth, Florian
Florian Simeth (@floriansimeth) ist seit 10 Jahren spezialisiert auf die WordPress-Entwicklung und ist Mitwirkender bei WordPress in den Bereichen Core, Plugin, Translation und Documentation. Er betreibt mehrere Websites, auf denen er sowohl Einsteiger auch fortgeschritte Entwickler rund um WordPress berät. Zudem bloggt er zum Thema und publiziert in Fachzeitschriften wie dem PHP- und WordPress-Magazin.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.