Verwenden der TGM-Plugin-Aktivierungsbibliothek in Ihren Designs

Themes sind nicht als funktional gedacht, aber als Theme-Entwickler müssen wir meistens einige Features hinzufügen, um unser Theme ein wenig besser zu machen und um eine funktionale Funktionalität zu bekommen. 

In diesem Tutorial werfen wir einen Blick auf den Begriff "Plugin-Gebiet" und lernen, ein fantastisches Werkzeug zu verwenden, das von Thomas Griffin geschrieben wurde: die TGM-Plugin-Aktivierungsbibliothek.

Theme-Funktionalität: Eindringendes Plugin-Gebiet

Themes sollen das Design Ihrer WordPress-Website verändern. Im Idealfall sollte es sein visuell. In diesem goldenen Zeitalter von WordPress haben Designentwickler jedoch häufig funktionale Funktionen in ihren Designs, um auf dem Markt wettbewerbsfähig zu bleiben. Das sollte es sein, aber es ist so.

Dies ist die Invasion des Plugin-Territoriums. Wir können "Plugin-Territorium" mit einfachen Worten definieren: Funktionelle Teile des Codes befinden sich innerhalb der Grenzen dieses Territoriums. Jeder Code, der die Funktionalität Ihrer Website ändert, muss als Plugin bereitgestellt werden, sofern er nicht bereits im WordPress-Kern bereitgestellt wurde. 

In einem meiner vorherigen Beiträge (in der Serie "Making the Perfect WordPress Theme") erwähnte ich das Faustregel des "Plugin-Territoriums":

Wenn es um das Feature geht Erscheinungsbild der website sollte es im thema stehen, aber wenn es um das geht Funktionalität einer Website sollte es als separates Plugin enthalten sein.

Leicht genug, richtig? 

Obwohl Menschen immer noch dazu neigen, funktionelle Bits in ihre Themes zu kodieren, akzeptieren Themeverzeichnisse (wie WordPress.org und ThemeForest) keine Themes, die in das "Plugin-Territorium" eindringen. Es ist daher zu einem Problem geworden, Funktionalität mit Themen anzubieten.

Glücklicherweise gibt es eine recht einfache Lösung, die nicht gegen die Regel des "Plugin-Territoriums" verstößt.

Einführung in die TGM-Plugin-Aktivierungsbibliothek

TGM-Plugin-Aktivierung ist eine einfache Bibliothek, in der Designs mit Plugins gebündelt werden. Die Idee ist einfach: Wenn ein Benutzer ein Design installiert, muss der Benutzer Plugins von WordPress.org, einer externen Website oder dem Designordner installieren. Thomas Griffin, der Schöpfer der Bibliothek, definiert dieses praktische kleine Werkzeug:

Aktivierung des TGM-Plugins ist eine PHP-Bibliothek, mit der Sie Plugins für Ihre WordPress-Themes (und Plugins) problemlos anfordern oder empfehlen können. Es ermöglicht Ihren Benutzern, Plugins mithilfe von nativen WordPress-Klassen, -Funktionen und -Schnittstellen einzeln oder in Massen zu installieren und sogar automatisch zu aktivieren. Sie können vorinstallierte Plugins, Plugins aus dem WordPress Plugin Repository oder Plugins, die an anderer Stelle im Internet gehostet werden, referenzieren.

Dies ist wahrscheinlich die intelligenteste Lösung für das Problem der "Invasion von Plugin-Territorien". Und es ist auch ganz einfach anzuwenden. 

Werfen wir einen Blick!

Installation der TGM-Plugin-Aktivierung

Die Aktivierung der Aktivierung des TGM-Plugins ist unglaublich einfach. Folgen Sie einfach diesen Schritten:

  • Laden Sie die TGM-Plugin-Aktivierungsbibliothek im Abschnitt "Download" der Seite herunter.
  • Öffnen Sie die ZIP-Datei und extrahieren Sie sie class-tgm-plugin-activation.php in Ihrem Designordner (wo immer Sie möchten).
  • Öffne dein Thema Functions.php Datei und verwenden Sie die einmalig benötigt() Funktion, um die Klassendatei (einmalig) in Ihrem Design zu benötigen.
  • Erstellen Sie eine Funktion, um die TGM-Plugin-Aktivierung zu konfigurieren, und verknüpfen Sie sie mit tgmpa_register über die add_action () Funktion.
  • Erledigt!

Es ist so einfach, dass Sie nicht einmal komplizierten PHP-Code benötigen, um Plugins anzufordern oder zu empfehlen. Sehen Sie sich den Code unten an:

Von jetzt an können Sie Ihre Benutzer dazu bringen, neue Plugins zu installieren, indem Sie die $ plugins Variable in der soeben erstellten Funktion. 

Mal sehen, wie es gemacht wird.

Plugins mit TGM-Plugin-Aktivierung installieren

Wie Sie von oben sehen können, das $ plugins Variable ist ein Array. Und um Plugins für die Installation zu definieren, müssen Sie Arrays innerhalb dieses Arrays erstellen (damit Sie ihre eigenen Parameter festlegen können). Klingt hart, aber es ist nicht:

Es gibt einige zu verwendende Parameter:

  • Name (string, required) - Der Name des Plugins.
  • Schnecke (string, required) - Der Slug des Plugins (normalerweise der Name des Ordners).
  • erforderlich (boolean, erforderlich) - Wenn es auf gesetzt ist wahr, Ihr Theme "benötigt" das Plugin. Ob falsch, das Thema wird es "empfehlen".
  • Quelle (string, manchmal erforderlich) - Die Quelle des Plugins. Wenn es sich um ein WordPress.org-Plugin handelt, sollte dieser Parameter nicht verwendet werden. sonst ist es erforderlich.
  • Ausführung (String, optional) - Die für das Plugin erforderliche Mindestversion. Zum Beispiel; Wenn der Designbenutzer bereits ein erforderliches Plugin installiert hat, jedoch nicht die von Ihnen angegebene Mindestversionsnummer besitzt, wird der Benutzer durch die Aktivierung des TGM-Plugins gewarnt, es zu aktualisieren.
  • Kraftaktivierung (boolean, optional) - Bei Einstellung auf wahr, Der Benutzer kann das Plugin nicht deaktivieren, solange Ihr Design aktiv ist. Etwas nervig, aber in manchen Szenarien kann es notwendig sein.
  • Kraftdeaktivierung (boolean, optional) - Bei Einstellung auf wahr, Das Plugin wird deaktiviert, sobald der Benutzer die Themen wechselt.
  • external_url (String, optional) - Wenn gesetzt, wird der Name des Plugins in der Plugin-Anforderung mit dieser Adresse verknüpft.

Sie haben drei Möglichkeiten, Ihre Benutzer dazu zu bringen, Plugins mit TGM-Plugin-Aktivierung zu installieren: Sie können ein Plugin aus dem WordPress-Plugin-Verzeichnis, von einer externen Quelle (wie einem eigenen Server oder einem CDN) oder von Ihrem Designordner (z. B. /my-theme/plugins/shortcodes.zip).

Ein Plugin von WordPress.org anfordern

 'BuddyPress', 'slug' => 'buddypress', 'required' => false, // dieses Plugin wird empfohlen))); ?>

Ein Plugin von einer externen Quelle anfordern

 'My Awesome Plugin', 'slug' => 'my-awesome-plugin', 'source' => 'http://files.my-website.com/my-awesome-plugin.zip', 'required' = > true, // dieses Plugin ist erforderlich 'external_url' => 'http://my-website.com/introducing-my-awesome-plugin', // Seite meines Plugins 'force_deactivation' => true, // deaktivieren dieses Plugin, wenn der Benutzer zu einem anderen Thema wechselt)); ?>

Ein Plugin aus dem Designverzeichnis anfordern

 'Mein super schlanker Slider', 'slug' => 'mein super schlanker Slider', 'source' => get_stylesheet_directory (). '/lib/plugins/my-super-sleek-slider.zip', // Die "interne" Quelle des Plugins. 'required' => true, // dieses Plugin ist erforderlich 'version' => '1.2', // der Benutzer muss Version 1.2 (oder höher) dieses Plugins 'force_activation' => false verwenden, // dieses Plugin wird ausgeführt aktiv bleiben, wenn der Benutzer nicht zu einem anderen Thema wechselt;)); ?>

TGM-Plugin-Aktivierung konfigurieren

Beachten Sie die tgmpa () Funktion mit zwei Parametern am Ende unseres Beispielcodes? Der zweite Parameter ist der $ config Variable, die auch ein Array ist, genau wie das $ plugins Parameter. Wie der Name schon sagt, können Sie die TGM-Plugin-Aktivierungsbibliothek mit diesem Array konfigurieren. Es hat auch einen eigenen Satz von Optionen, die Sie einstellen müssen:

  • Ich würde (Zeichenfolge) - Eine eindeutige ID für die TGM-Plugin-Aktivierungsbibliothek dass Sie in Ihrem Thema umgesetzt haben. Dies ist eigentlich sehr wichtig: Wenn ein anderes Plugin auch die Aktivierung des TGM-Plugins verwendet, verhindern die verschiedenen IDs Konflikte.
  • default_path (Zeichenfolge) - Der absolute Standardpfad für Plugins in Ihrem Design. Wenn Sie dies einstellen, können Sie einfach den Namen der ZIP-Datei als Quelle Parameter für Ihr Plugin.
  • Speisekarte (string) - Der Menü-Slug für die Plugin-Installationsseite.
  • has_notices (boolean) - Wenn auf eingestellt wahr, Admin-Hinweise werden für erforderliche / empfohlene Plugins angezeigt.
  • unzulässig (boolean) - Wenn auf eingestellt wahr, Der Benutzer kann die Benachrichtigungen "verwerfen".
  • dismiss_msg (string) - Wenn die abzulehnen Wenn diese Option auf "false" gesetzt ist, wird diese Nachricht über der Administratorbenachrichtigung angezeigt.
  • is_automatic (boolean) - Wenn auf eingestellt wahr, Plugins werden aktiviert, nachdem der Benutzer der Installation zugestimmt hat.
  • Botschaft (string) - Optionales HTML, das vor der Plugins-Tabelle angezeigt werden soll.
  • Streicher (Array) - Noch einer Array Dazu gehören die anzuzeigenden Meldungen. Sie können sie auch als übersetzbare Zeichenketten festlegen. Besuche die beispiel.php Datei, um die vollständige Liste der Nachrichtenzeichenfolgen anzuzeigen.
 'mytheme-tgmpa', // Ihre eindeutige TGMPA-ID 'default_path' => get_stylesheet_directory (). '/ lib / plugins /', // voreingestellter absoluter Pfad 'menu' => 'mytheme-install-required-plugins', // Menü-Slug 'has_notices' => true, // Admin-Hinweise anzeigen 'unzulässig' => false , // die Hinweise sind NICHT abzulehnen 'dismiss_msg' => 'Ich brauche wirklich, dass Sie diese Plugins installieren, okay?', // diese Nachricht wird oben auf nag ausgegeben 'is_automatic' => true, // automatisch Plugins nach der Installation aktivieren 'message' => '', // Nachricht, die unmittelbar vor der Plugins-Tabelle' strings 'ausgegeben werden soll => array (); // Das Array von Nachrichtenzeichenfolgen, das von der TGM-Plugin-Aktivierung verwendet wird); ?>

Alles einpacken

Wie Sie sehen, ist es keineswegs unmöglich, Funktionalität mit WordPress-Themes anzubieten - Sie müssen nur an die Benutzer denken, wenn sie von Ihrem Design zu einem anderen wechseln. Die TGM-Plugin-Aktivierungsbibliothek bietet eine wirklich clevere Möglichkeit, es nach dem Buch zu spielen.

Was denkst du über dieses Werkzeug? Haben Sie es schon einmal verwendet oder planen Sie es in Zukunft? Sagen Sie uns Ihre Meinung, indem Sie unten kommentieren. Und wenn Ihnen dieser Artikel gefallen hat, vergessen Sie nicht, ihn mit Ihren Freunden zu teilen!