テーマで TGM プラグイン アクティベーション ライブラリの機能を活用します

王林
リリース: 2023-09-01 22:49:02
オリジナル
815 人が閲覧しました

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

テーマは機能することを目的としたものではありませんが、テーマ開発者としては主に、テーマをもう少し改良して機能させるためにいくつかの機能を組み込む必要があります。

このチュートリアルでは、「プラグイン レルム」という用語について学び、Thomas Griffin によって作成された優れたツールである TGM プラグイン アクティベーション ライブラリの使用方法を学びます。

テーマ機能: プラグイン領域への侵入

テーマは、WordPress Web サイトのデザインを変更するように設計されています。理想的には、visual である必要があります。しかし、WordPress の黄金時代には、テーマ開発者は市場での競争力を維持するためにテーマに機能的な機能を組み込むことがよくありました。そうあるべきなのですが、そうなんです。

これはプラグインの領域への侵入です。 「プラグイン ドメイン」は簡単に定義できます。コードの機能部分はドメインの境界内にあります。ウェブサイトの機能を変更するコードはすべて、プラグインとして利用できる必要があります (WordPress コアでまだ利用できない場合)。

以前の記事 (「完璧な WordPress テーマの作成」シリーズ) の 1 つで、「プラグインの世界」における 経験則 について言及しました。

機能がサイトの

見た目に関連する場合はテーマに含める必要がありますが、サイトの 機能に関連する場合は、別のプラグインが含まれているため、テーマに含める必要があります。

とてもシンプルですよね?

ユーザーは依然としてテーマに機能ビットをハードコーディングする傾向がありますが、テーマ ディレクトリ (WordPress.org や ThemeForest など) は、「プラグイン領域」に侵入するテーマを受け入れません。したがって、テーマによる機能の提供が問題になります。

幸いなことに、非常に簡単な解決策があり、それは「プラグイン領域」のルールに違反しません。

TGM プラグイン アクティベーション ライブラリの概要

TGM Plugin Activation は、テーマとプラグインをバンドルするように設計された軽量ライブラリです。考え方はシンプルです。ユーザーがテーマをインストールすると、WordPress.org、外部 Web サイト、またはテーマのフォルダーからプラグインをインストールできるようになります。ライブラリの作成者である Thomas Griffin は、この便利な小さなツールを次のように定義しています。

TGM Plugin Activation

は、WordPress テーマ (およびプラグイン) のプラグインを簡単にリクエストまたは推奨できるようにする PHP ライブラリです。これにより、ユーザーはネイティブ WordPress クラス、関数、インターフェイスを使用して、単一またはバッチの方法でプラグインをインストールし、自動的にアクティブ化することもできます。事前にパッケージ化されたプラグイン、WordPress プラグイン リポジトリのプラグイン、またはインターネット上の他の場所でホストされているプラ​​グインを参照することができます。

これはおそらく、「プラグイン領域の侵入」問題に対する最も賢明な解決策です。そして、適用するのは簡単です。

見てみましょう!

TGM プラグイン アクティベーションのインストール

TGM プラグイン アクティベーションのインストールは非常に簡単です。次の手順に従ってください:

ページの「ダウンロード」セクションから TGM プラグイン アクティベーション ライブラリをダウンロードします。
  • zip ファイルを開き、
  • class-tgm-plugin-activation.php
  • をテーマ フォルダー (任意の場所) に抽出します。 テーマの
  • functions.php
  • ファイルを開き、require_once() 関数を使用して、テーマ内のクラス ファイルを (1 回だけ) リクエストします。 TGM プラグインのアクティブ化を構成する関数を作成し、
  • add_action()
  • 関数を介して tgmpa_register にフックします。 ###仕上げる!
  • とても簡単なので、プラグインをリクエストしたり推奨したりするための複雑な PHP コードも必要ありません。次のコードを見てください:
  • リーリー
今後は、作成した関数に

$plugins

変数を設定することで、ユーザーが新しいプラグインをインストールできるようになります。

それがどのように行われるかを見てみましょう。

TGM プラグインを介してプラグインをアクティブ化してインストールします

上記からわかるように、

$plugins

変数は配列です。インストールするプラグインを定義するには、その配列内に配列を作成する必要があります (独自のパラメーターを設定できるように)。難しそうに聞こえますが、そうではありません:

リーリー 使用可能なパラメータがいくつかあります:

  • 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!