首頁  >  文章  >  CMS教程  >  在您的主題中利用 TGM 外掛程式啟動庫的強大功能

在您的主題中利用 TGM 外掛程式啟動庫的強大功能

王林
王林原創
2023-09-01 22:49:02822瀏覽

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

#主題並不意味著具有功能性,但作為主題開發人員,我們主要需要包含一些功能以使我們的主題更好一點,並且具有功能性。

在本教程中,我們將了解「外掛領域」一詞,並學習使用 Thomas Griffin 編寫的出色工具:TGM 外掛程式啟動庫。

主題功能:入侵外​​掛領地

主題旨在改變您的 WordPress 網站的設計。理想情況下,它應該是視覺。但在 WordPress 的黃金時代,主題開發人員經常在其主題中包含功能特性,以保持市場競爭力。本來應該如此,但事實卻是如此。

這是對外掛領地的入侵。我們可以用簡單的術語來定義「插件領域」:程式碼的功能部分位於該領域的邊界內。改變網站功能的每一段程式碼都需要作為外掛程式提供(如果尚未在 WordPress 核心中提供)。

在我之前的一篇文章(「製作完美的 WordPress 主題」系列)中,我提到了「外掛領域」的經驗法則

如果該功能與網站的視覺外觀有關,則應位於主題中,但如果與網站的功能有關,則應在主題中應作為單獨的插件包含在內。

很簡單,對吧?

儘管人們仍然傾向於將功能位硬編碼到他們的主題中,但主題目錄(如 WordPress.org 和 ThemeForest)不接受侵入「外掛領域」的主題。因此,提供有主題的功能就成了一個問題。

幸運的是,有一個相當簡單的解決方案,而且它不違反「外掛領域」規則。

介紹 TGM 外掛程式啟動庫

TGM Plugin Activation 是一個輕量級函式庫,旨在將主題與外掛程式捆綁在一起。這個想法很簡單:當使用者安裝您的主題時,它會讓使用者安裝來自 WordPress.org、外部網站或主題資料夾的外掛程式。以下是該庫的創建者 Thomas Griffin 對這個方便的小工具的定義:

TGM 外掛程式啟動 是一個 PHP 函式庫,可讓您輕鬆地為您的 WordPress 主題(和外掛程式)請求或推薦外掛程式。它允許您的用戶使用本機 WordPress 類別、函數和介面以單一或批次方式安裝甚至自動啟用外掛程式。您可以引用預先包裝的插件、WordPress 插件儲存庫中的插件,甚至是網路上其他地方託管的插件。

這可能是解決「插件領地入侵」問題的最明智的解決方案。而且申請也很容易。

我們來看看吧!

安裝 TGM 外掛程式啟動

安裝 TGM 外掛程式啟動非常簡單。只需按照以下步驟操作:

  • 從頁面的「下載」部分下載 TGM 外掛程式啟動庫。
  • 開啟 zip 檔案並將 class-tgm-plugin-activation.php 解壓縮到您的主題資料夾(任何您喜歡的位置)。
  • 開啟主題的 functions.php 檔案並使用 require_once() 函數在主題中(一次)請求類別檔案。
  • 建立一個函數來配置 TGM 外掛程式激活,並透過 add_action() 函數將其掛鉤到 tgmpa_register
  • 完成!

這非常簡單,您甚至不需要複雜的 PHP 程式碼來要求或推薦外掛程式。看一下下面的程式碼:

<?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 );

}

?>

從現在開始,您可以透過在剛剛建立的函數中設定 $plugins 變數來讓使用者安裝新外掛程式。

讓我們看看它是如何完成的。

透過 TGM 外掛程式啟動安裝外掛

從上面可以看出,$plugins 變數是一個陣列。要定義要安裝的插件,您需要在該數組中建立數組(以便您可以設定自己的參數)。聽起來很難,但事實並非如此:

<?php

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

?>

有幾個參數可供使用:

  • 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 插件激活库提供了一种非常聪明的按书本操作的方法。

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

以上是在您的主題中利用 TGM 外掛程式啟動庫的強大功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn