Heim  >  Artikel  >  CMS-Tutorial  >  Nutzen Sie die Leistungsfähigkeit der TGM-Plugin-Aktivierungsbibliothek in Ihrem Theme

Nutzen Sie die Leistungsfähigkeit der TGM-Plugin-Aktivierungsbibliothek in Ihrem Theme

王林
王林Original
2023-09-01 22:49:02822Durchsuche

在您的主题中利用 TGM 插件激活库的强大功能

Themes sollen nicht funktional sein, aber als Theme-Entwickler müssen wir hauptsächlich einige Funktionen einbinden, um unsere Themes ein wenig besser und funktionaler zu machen.

In diesem Tutorial lernen wir den Begriff „Plugin-Bereich“ kennen und lernen, ein hervorragendes Tool von Thomas Griffin zu verwenden: die TGM-Plugin-Aktivierungsbibliothek.

Theme-Funktion: Erobern Sie das Plug-in-Territorium

Theme wurde entwickelt, um das Design Ihrer WordPress-Website zu ändern. Idealerweise sollte es visuell sein. Doch im goldenen Zeitalter von WordPress haben Theme-Entwickler häufig funktionale Features in ihre Themes integriert, um auf dem Markt wettbewerbsfähig zu bleiben. Es sollte so sein, aber es ist so.

Dies ist eine Invasion des Plugin-Territoriums. Wir können „Plugin-Domäne“ in einfachen Worten definieren: Der funktionale Teil des Codes liegt innerhalb der Grenzen der Domäne. Jeder Code, der die Funktionalität Ihrer Website verändert, muss als Plugin verfügbar sein (sofern es nicht bereits im WordPress-Kern verfügbar ist).

In einem meiner vorherigen Artikel (in der Reihe „Das perfekte WordPress-Theme erstellen“) habe ich eine Faustregel in der „Plugin-Welt“ erwähnt:

Wenn die Funktion mit dem visuellen Erscheinungsbild der Website zusammenhängt, sollte sie im Theme enthalten sein. Wenn sie jedoch mit der Funktionalität der Website zusammenhängt, sollte sie als separates Plugin im Theme enthalten sein.

Einfach, oder?

Während die Leute immer noch dazu neigen, Funktionsteile fest in ihre Themes zu programmieren, akzeptieren Theme-Verzeichnisse (wie WordPress.org und ThemeForest) keine Themes, die in den „Plugin-Bereich“ eindringen. Daher wird die Bereitstellung von Funktionalität mit Themen zu einem Problem.

Glücklicherweise gibt es eine ziemlich einfache Lösung, die nicht gegen die „Plugin-Realm“-Regeln verstößt.

Wir stellen vor: die TGM-Plug-in-Aktivierungsbibliothek

TGM Plugin Activation ist eine schlanke Bibliothek, die entwickelt wurde, um Themes mit Plugins zu bündeln. Die Idee ist einfach: Wenn ein Benutzer Ihr Theme installiert, kann er Plugins von WordPress.org, einer externen Website oder dem Theme-Ordner installieren. So definiert der Erfinder der Bibliothek, Thomas Griffin, dieses praktische kleine Tool:

TGM Plugin Activation ist eine PHP-Bibliothek, mit der Sie ganz einfach Plugins für Ihre WordPress-Themes (und Plugins) anfordern oder empfehlen können. Es ermöglicht Ihren Benutzern, Plugins einzeln oder im Stapel mithilfe nativer WordPress-Klassen, -Funktionen und -Schnittstellen zu installieren und sogar automatisch zu aktivieren. Sie können auf vorgefertigte Plugins, Plugins aus dem WordPress-Plugin-Repository oder sogar Plugins verweisen, die an anderer Stelle im Internet gehostet werden.

Dies ist wahrscheinlich die intelligenteste Lösung für das Problem der „Plugin-Territorium-Invasion“. Und es ist einfach anzuwenden.

Lass uns einen Blick darauf werfen!

Installieren Sie die TGM-Plug-in-Aktivierung

Die Installation und Aktivierung des TGM-Plugins ist sehr einfach. Befolgen Sie einfach diese Schritte:

  • Laden Sie die TGM-Plugin-Aktivierungsbibliothek aus dem Download-Bereich der Seite herunter.
  • Öffnen Sie die ZIP-Datei und entpacken Sie sie class-tgm-plugin-activation.php in Ihren Theme-Ordner (an einen beliebigen Ort).
  • Öffnen Sie die functions.php 文件并使用 require_once()-Funktion des Themes, um die Klassendatei (einmalig) im Theme anzufordern.
  • Erstellen Sie eine Funktion, um die TGM-Plugin-Aktivierung zu konfigurieren und zu übergeben add_action() 函数将其挂钩到 tgmpa_register.
  • Fertig!

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

<?php

/**
 * Since I'm already doing a tutorial, I'm not going to include comments to
 * this code, but if you want, you can check out the "example.php" file
 * inside the ZIP you downloaded - it has a very detailed documentation.
 */

require_once dirname( __FILE__ ) . '/class-tgm-plugin-activation.php';

add_action( 'tgmpa_register', 'mytheme_require_plugins' );

function mytheme_require_plugins() {

    $plugins = array( /* The array to install plugins */ );
    $config = array( /* The array to configure TGM Plugin Activation */ );

    tgmpa( $plugins, $config );

}

?>

Von nun an können Sie dem Benutzer erlauben, neue Plugins zu installieren, indem Sie die Variable $plugins in der soeben erstellten Funktion festlegen.

Mal sehen, wie es gemacht wird.

Installieren Sie das Plug-in über die TGM-Plug-in-Aktivierung

Wie Sie oben sehen können, ist die Variable $plugins ein Array. Um die zu installierenden Plugins zu definieren, müssen Sie ein Array innerhalb dieses Arrays erstellen (damit Sie Ihre eigenen Parameter festlegen können). Klingt hart, ist es aber nicht:

<?php

$plugins = array(
	array( /* my first plugin */ ),
	array( /* my second plugin */ ),
	array( /* my third plugin */ ),
	// ...
	array( /* my nth plugin */ )
);

?>

Es stehen mehrere Parameter zur Verfügung:

  • name(字符串,必需)- 插件的名称。
  • slug (字符串,必需)- 插件的 slug(通常是其文件夹的名称)。
  • required (布尔值,必需) - 如果设置为 true,您的主题将“需要”该插件。如果false,主题将“推荐”它。
  • source (字符串,有时需要)- 插件的源。如果是 WordPress.org 插件,则不应使用此参数;否则,这是必需的。
  • version (字符串,可选) - 插件所需的最低版本。例如;如果主题用户已经安装了所需的插件,但没有达到您指定的最低版本号,TGM 插件激活会警告用户进行更新。
  • force_activation (布尔值,可选) - 如果设置为 true,当您的主题处于活动状态时,用户将无法停用插件。有点烦人,但在某些情况下可能是必要的。
  • force_deactivation (布尔值,可选) - 如果设置为 true,一旦用户切换主题,插件将被停用。
  • external_url (字符串,可选) - 如果设置,插件的名称将链接到插件要求通知中的此地址。

您可以通过三个选项让您的用户通过 TGM 插件激活安装插件:您可以从 WordPress 插件目录、外部源(例如您自己的服务器或 CDN)或您的主题文件夹(例如/my-theme/plugins/shortcodes.zip)。

需要 WordPress.org 的插件

<?php

$plugins = array(
	array(
		'name'      => 'BuddyPress',
		'slug'      => 'buddypress',
		'required'  => false, // this plugin is recommended
	)
);

?>

从外部源请求插件

<?php

$plugins = array(
	array(
		'name'               => 'My Awesome Plugin',
		'slug'               => 'my-awesome-plugin',
		'source'             => 'http://files.my-website.com/my-awesome-plugin.zip',
		'required'           => true, // this plugin is required
		'external_url'       => 'http://my-website.com/introducing-my-awesome-plugin', // page of my plugin
		'force_deactivation' => true, // deactivate this plugin when the user switches to another theme
	)
);

?>

从主题目录中获取插件

<?php

$plugins = array(
	array(
		'name'               => 'My Super Sleek Slider',
		'slug'               => 'my-super-sleek-slider',
		'source'             => get_stylesheet_directory() . '/lib/plugins/my-super-sleek-slider.zip', // The "internal" source of the plugin.
		'required'           => true, // this plugin is required
		'version'            => '1.2', // the user must use version 1.2 (or higher) of this plugin
		'force_activation'   => false, // this plugin is going to stay activated unless the user switches to another theme
	)
);

?>

配置 TGM 插件激活

注意到示例代码末尾带有两个参数的 tgmpa() 函数了吗?第二个参数是 $config 变量,它也恰好是一个数组,就像 $plugins 参数一样。顾名思义,您可以使用此数组配置 TGM 插件激活库。它还有自己的一组选项需要设置:

  • id(字符串) - 您在主题中实现的 TGM 插件激活库的唯一 ID。这实际上非常重要:如果另一个插件也使用 TGM 插件激活,则不同的 ID 可以防止冲突。
  • default_path (string) - 主题内插件的默认绝对路径。设置此选项后,您可以使用 ZIP 文件的名称作为插件的 source 参数。
  • menu (字符串) - 插件安装页面的菜单项。
  • has_notices (boolean) - 如果设置为 true,则会显示必需/推荐插件的管理员通知。
  • dismissible (boolean) - 如果设置为 true,用户可以“忽略”通知。
  • dismiss_msg (string) - 如果 dismissable 选项设置为 false,则此消息将显示在管理通知上方。
  • is_automatic (boolean) - 如果设置为 true,插件将在用户同意安装后激活。
  • message (string) - 在插件表之前显示的可选 HTML。
  • strings (array) - 另一个 array 包含要显示的消息。您也可以将它们设置为可翻译字符串。查看 example.php 文件以查看消息字符串的完整列表。
<?php

$config = array(
	'id'           => 'mytheme-tgmpa', // your unique TGMPA ID
	'default_path' => get_stylesheet_directory() . '/lib/plugins/', // default absolute path
	'menu'         => 'mytheme-install-required-plugins', // menu slug
	'has_notices'  => true, // Show admin notices
	'dismissable'  => false, // the notices are NOT dismissable
	'dismiss_msg'  => 'I really, really need you to install these plugins, okay?', // this message will be output at top of nag
	'is_automatic' => true, // automatically activate plugins after installation
	'message'      => '<!--Hey there.-->', // message to output right before the plugins table
	'strings'      => array(); // The array of message strings that TGM Plugin Activation uses
);

?>

总结一切

正如您所看到的,通过 WordPress 主题提供功能并非不可能 - 您只需考虑用户从您的主题切换到另一个主题时的情况。 TGM 插件激活库提供了一种非常聪明的按书本操作的方法。

您觉得这个工具怎么样?您曾经使用过它,或者您打算将来使用它吗?请在下面发表评论,告诉我们您的想法。如果您喜欢这篇文章,请不要忘记与您的朋友分享!

Das obige ist der detaillierte Inhalt vonNutzen Sie die Leistungsfähigkeit der TGM-Plugin-Aktivierungsbibliothek in Ihrem Theme. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn