Les thèmes ne sont pas censés être fonctionnels, mais en tant que développeurs de thèmes, nous devons principalement inclure certaines fonctionnalités pour rendre nos thèmes un peu meilleurs et fonctionnels.
Dans ce tutoriel, nous découvrirons le terme « domaine des plugins » et apprendrons à utiliser un excellent outil écrit par Thomas Griffin : la bibliothèque d'activation de plug-in TGM.
Le thème est conçu pour changer la conception de votre site Web WordPress. Idéalement, cela devrait être visuel. Mais à l’âge d’or de WordPress, les développeurs de thèmes incluaient souvent des fonctionnalités fonctionnelles dans leurs thèmes pour rester compétitifs sur le marché. Cela devrait être le cas, mais c'est le cas.
Il s'agit d'une invasion du territoire des plugins. Nous pouvons définir le « domaine du plugin » en termes simples : la partie fonctionnelle du code se situe dans les limites du domaine. Chaque morceau de code qui modifie les fonctionnalités de votre site Web doit être disponible sous forme de plugin (s'il n'est pas déjà disponible dans le noyau de WordPress).
Dans l'un de mes articles précédents (dans la série « Créer le thème WordPress parfait »), j'ai mentionné une règle générale dans le « monde des plugins » :
Si la fonctionnalité est liée à l'apparence visuelle du site, elle doit être dans le thème, mais si elle est liée à la fonctionnalité du site, elle doit être incluse en tant que plugin distinct dans le thème.
Simple, non ?
Alors que les gens ont encore tendance à coder en dur des éléments de fonctionnalités dans leurs thèmes, les répertoires de thèmes (comme WordPress.org et ThemeForest) n'acceptent pas les thèmes qui envahissent le « domaine des plugins ». Par conséquent, fournir des fonctionnalités avec des thèmes devient un problème.
Heureusement, il existe une solution assez simple, et elle ne viole pas les règles du « domaine des plugins ».
TGM Plugin Activation est une bibliothèque légère conçue pour regrouper des thèmes avec des plugins. L’idée est simple : lorsqu’un utilisateur installe votre thème, il lui permet d’installer des plugins depuis WordPress.org, un site Web externe ou le dossier du thème. Voici comment le créateur de la bibliothèque, Thomas Griffin, définit ce petit outil bien pratique :
TGM Plugin Activation est une bibliothèque PHP qui vous permet de demander ou de recommander facilement des plugins pour vos thèmes (et plugins) WordPress. Il permet à vos utilisateurs d’installer et même d’activer automatiquement des plugins de manière unique ou par lots à l’aide de classes, fonctions et interfaces WordPress natives. Vous pouvez référencer des plugins préemballés, des plugins du référentiel de plugins WordPress ou même des plugins hébergés ailleurs sur Internet.
C'est probablement la solution la plus intelligente au problème de « l'invasion du territoire des plugins ». Et c’est facile à appliquer.
Jetons un coup d’œil !
Il est très simple d'installer et d'activer le plug-in TGM. Suivez simplement ces étapes :
class-tgm-plugin-activation.php
dans votre dossier de thème (où vous le souhaitez). functions.php
文件并使用 require_once()
du thème pour demander le fichier de classe (une fois) dans le thème. add_action()
函数将其挂钩到 tgmpa_register
. C'est si simple que vous n'avez même pas besoin de code PHP complexe pour demander ou recommander des plugins. Jetez un œil au code ci-dessous :
<?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 ); } ?>
Désormais, vous pouvez laisser l'utilisateur installer de nouveaux plugins en définissant la variable $plugins
dans la fonction que vous venez de créer.
Voyons comment cela se passe.
Comme vous pouvez le voir ci-dessus, la variable $plugins
est un tableau. Pour définir les plugins à installer, vous devez créer un tableau au sein de ce tableau (afin de pouvoir définir vos propres paramètres). Cela semble difficile, mais ce n'est pas le cas :
<?php $plugins = array( array( /* my first plugin */ ), array( /* my second plugin */ ), array( /* my third plugin */ ), // ... array( /* my nth plugin */ ) ); ?>
Plusieurs paramètres sont disponibles :
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
)。
<?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 ) ); ?>
注意到示例代码末尾带有两个参数的 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 插件激活库提供了一种非常聪明的按书本操作的方法。
您觉得这个工具怎么样?您曾经使用过它,或者您打算将来使用它吗?请在下面发表评论,告诉我们您的想法。如果您喜欢这篇文章,请不要忘记与您的朋友分享!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!