테마에서 TGM 플러그인 활성화 라이브러리의 기능을 활용하세요.

王林
풀어 주다: 2023-09-01 22:49:02
원래의
815명이 탐색했습니다.

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

테마는 기능적이어야 하는 것이 아니지만 테마 개발자로서 우리는 주로 테마를 좀 더 좋고 기능적으로 만들기 위해 몇 가지 기능을 포함해야 합니다.

이 튜토리얼에서는 "플러그인 영역"이라는 용어에 대해 배우고 Thomas Griffin이 작성한 훌륭한 도구인 TGM 플러그인 활성화 라이브러리를 사용하는 방법을 배웁니다.

테마 기능: 플러그인 영역을 침범하세요

테마는 WordPress 웹사이트의 디자인을 변경하도록 설계되었습니다. 이상적으로는 visual이어야 합니다. 그러나 WordPress의 황금 시대에 테마 개발자는 시장에서 경쟁력을 유지하기 위해 테마에 기능적 기능을 포함하는 경우가 많았습니다. 그래야 하지만 그렇습니다.

이것은 플러그인 영역 침범입니다. "플러그인 도메인"을 간단한 용어로 정의할 수 있습니다. 코드의 기능적 부분은 도메인 경계 내에 있습니다. 웹 사이트의 기능을 변경하는 모든 코드는 플러그인으로 사용할 수 있어야 합니다(WordPress 코어에서 아직 사용할 수 없는 경우).

이전 기사 중 하나("완벽한 WordPress 테마 만들기" 시리즈)에서 "플러그인 세계"의 경험 법칙을 언급했습니다.

사이트의 외관과 관련된 기능이라면 테마에 포함되어야 하고, 사이트의 기능과 관련된 기능이라면 테마에 별도의 플러그인으로 포함되어야 합니다.

간단하죠?

사람들은 여전히 ​​테마에 기능 비트를 하드코딩하는 경향이 있지만 테마 디렉토리(예: WordPress.org 및 ThemeForest)는 "플러그인 영역"을 침범하는 테마를 허용하지 않습니다. 따라서 테마로 기능을 제공하는 것이 문제가 됩니다.

다행히도 매우 간단한 해결책이 있으며 "플러그인 영역" 규칙을 위반하지 않습니다.

TGM 플러그인 활성화 라이브러리 소개

TGM 플러그인 활성화는 테마를 플러그인과 함께 묶도록 설계된 경량 라이브러리입니다. 아이디어는 간단합니다. 사용자가 테마를 설치할 때 WordPress.org, 외부 웹사이트 또는 테마 폴더에서 플러그인을 설치할 수 있습니다. 라이브러리 창시자인 Thomas Griffin은 이 편리한 도구를 다음과 같이 정의합니다.

TGM 플러그인 활성화는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!