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

wufei123 2024-06-02 阅读:39 评论:0
主题并不意味着具有功能性,但作为主题开发人员,我们主要需要包含一些功能以使我们的主题更好一点,并且具有功能性。 在本教程中,我们将了解“插件领域”一词,并学习使用 Thomas Griffin 编写的出色工具:TGM 插件激活库。...

在您的主题中利用 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 插件激活库的强大功能的详细内容,更多请关注知识资源分享宝库其它相关文章!

版权声明

本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com

分享:

扫一扫在手机阅读、分享本文

发表评论
热门文章
  • BioWare埃德蒙顿工作室面临关闭危机,龙腾世纪制作总监辞职引关注(龙腾.总监.辞职.危机.面临.....)

    BioWare埃德蒙顿工作室面临关闭危机,龙腾世纪制作总监辞职引关注(龙腾.总监.辞职.危机.面临.....)
    知名变性人制作总监corrine busche离职bioware,引发业界震荡!外媒“smash jt”独家报道称,《龙腾世纪:影幢守护者》制作总监corrine busche已离开bioware,此举不仅引发了关于个人职业发展方向的讨论,更因其可能预示着bioware埃德蒙顿工作室即将关闭而备受关注。本文将深入分析busche离职的原因及其对bioware及游戏行业的影响。 Busche的告别信:挑战与感激并存 据“Smash JT”获得的内部邮件显示,Busche离职原...
  • 闪耀暖暖靡城永恒怎么样-闪耀暖暖靡城永恒套装介绍(闪耀.暖暖.套装.介绍.....)

    闪耀暖暖靡城永恒怎么样-闪耀暖暖靡城永恒套装介绍(闪耀.暖暖.套装.介绍.....)
    闪耀暖暖钻石竞技场第十七赛季“华梦泡影”即将开启!全新闪耀性感套装【靡城永恒】震撼来袭!想知道如何获得这套精美套装吗?快来看看吧! 【靡城永恒】套装设计理念抢先看: 设计灵感源于夜色中的孤星,象征着淡然、漠视一切的灰色瞳眸。设计师希望通过这套服装,展现出在虚幻与真实交织的夜幕下,一种独特的魅力。 服装细节考究,从面料的光泽、鞋跟声响到裙摆的弧度,都力求完美还原设计初衷。 【靡城永恒】套装设计亮点: 闪耀的绸缎与金丝交织,轻盈的羽毛增添华贵感。 这套服装仿佛是从无尽的黑...
  • python怎么调用其他文件函数

    python怎么调用其他文件函数
    在 python 中调用其他文件中的函数,有两种方式:1. 使用 import 语句导入模块,然后调用 [模块名].[函数名]();2. 使用 from ... import 语句从模块导入特定函数,然后调用 [函数名]()。 如何在 Python 中调用其他文件中的函数 在 Python 中,您可以通过以下两种方式调用其他文件中的函数: 1. 使用 import 语句 优点:简单且易于使用。 缺点:会将整个模块导入到当前作用域中,可能会导致命名空间混乱。 步骤:...
  • 斗魔骑士哪个角色强势-斗魔骑士角色推荐与实力解析(骑士.角色.强势.解析.实力.....)

    斗魔骑士哪个角色强势-斗魔骑士角色推荐与实力解析(骑士.角色.强势.解析.实力.....)
    斗魔骑士角色选择及战斗策略指南 斗魔骑士游戏中,众多角色各具特色,选择适合自己的角色才能在战斗中占据优势。本文将为您详细解读如何选择强力角色,并提供团队协作及角色培养策略。 如何选择强力角色? 斗魔骑士的角色大致分为近战和远程两种类型。近战角色通常拥有高攻击力和防御力,适合冲锋陷阵;远程角色则擅长后方输出,并依靠灵活走位躲避攻击。 选择角色时,需根据个人游戏风格和喜好决定。喜欢正面硬刚的玩家可以选择战士型角色,其高生命值和防御力能承受更多伤害;偏好策略性玩法的玩家则可以选择法...
  • 奇迹暖暖诸星梦眠怎么样-奇迹暖暖诸星梦眠套装介绍(星梦.暖暖.奇迹.套装.介绍.....)

    奇迹暖暖诸星梦眠怎么样-奇迹暖暖诸星梦眠套装介绍(星梦.暖暖.奇迹.套装.介绍.....)
    奇迹暖暖全新活动“失序之圜”即将开启,参与活动即可获得精美套装——诸星梦眠!想知道这套套装的细节吗?一起来看看吧! 奇迹暖暖诸星梦眠套装详解 “失序之圜”活动主打套装——诸星梦眠,高清海报震撼公开!少女在无垠梦境中,接受星辰的邀请,馥郁芬芳,预示着命运之花即将绽放。 诸星梦眠套装包含:全新妆容“隽永之梦”、星光面饰“熠烁星光”、动态特姿连衣裙“诸星梦眠”、动态特姿发型“金色绮想”、精美特效皇冠“繁星加冕”,以及动态摆件“芳馨酣眠”、“沉云余音”、“流星低语”、“葳蕤诗篇”。...