
Как авторы WordPress в ThemeForest, нам нравится радовать наших клиентов, предоставляя им время от времени исправления ошибок и улучшения наших тем. Но одной из ключевых проблем для нас является то, как уведомить наших пользователей, когда обновление доступно для загрузки.
В прежние времена каждый из нас должен был кодировать в своих собственных реализациях средство уведомления об обновлении темы. Несмотря на то, что теперь есть флажок для включения уведомлений об обновлениях элементов на торговых площадках Envato, пользователи по-прежнему должны включать его для каждого элемента, а также выполнять обновление темы вручную.
Разве не было бы лучше, если бы уведомления об обновлениях отображались внутри самого администратора WordPress? И что обновления могут быть выполнены прямо в админке? К счастью для нас, у нас теперь есть плагин Envato WordPress Toolkit и библиотека инструментов.
В этой серии вы узнаете, как интегрировать эти наборы инструментов в свои темы.
Что мы будем освещать в этой серии
В этом уроке мы собираемся реализовать плагин Envato WordPress Toolkit и библиотеку в нашей теме. Когда наша тема активирована, пользователю будет предложено установить и активировать плагин Toolkit.
Как только плагин активен, наша тема будет периодически проверять наличие обновлений, и, если обновление будет найдено, в администраторе будет отображаться уведомление, которое направит пользователя к плагину для обновления темы.
Учебник разделен на две части:
- Часть 1. Интеграция класса активации плагина TGM, чтобы сделать плагин Envato WordPress Toolkit обязательным при использовании нашей темы; и
- Часть 2. Внедрение библиотеки Envato WordPress Toolkit в нашу тему для проверки и обновления новой версии темы.
Плагин и библиотека?
Envato WordPress Toolkit поставляется в двух формах, которые имеют различное использование и назначение. Чтобы мы не запутались с этими двумя, вот сравнение:
- Toolkit Plugin — это автономный плагин, который может быть установлен любым клиентом Envato на своем сайте WordPress. При активации все ранее приобретенные темы, а также обновления тем будут доступны для скачивания непосредственно из администратора.
- Библиотека наборов инструментов — код, который авторы могут включать в свои темы WordPress, который позволяет этой теме использовать API Envato Marketplace для проверки наличия обновлений версии темы и ее обновления.
1. Включая необходимые файлы
Сначала нам нужно включить некоторые файлы в наш проект. Мы собираемся связать плагин Toolkit с нашей темой, и мы будем использовать активацию плагина TGM для установки и активации Toolkit.
- Загрузите активацию плагина TGM и поместите скрипт основного класса в папку inc вашей темы. Путь должен быть: mytheme / inc / class-tgm-plugin-активации.php
- Затем загрузите ZIP-файл плагина Envato WordPress Toolkit и поместите его в новую папку в вашей теме под названием плагины. Путь должен быть: mytheme / plugins / envato-wordpress-toolkit-master.zip
Примечание. Вы можете изменить расположение указанных выше файлов в соответствии с вашими потребностями. Кроме того, вы можете скачать полный исходный код по ссылке в верхней части этой статьи.
2. Функция крюка TGM
Теперь, когда у нас есть необходимые файлы, давайте начнем кодировать. Нам нужно будет включить класс активации плагина TGM в наш functions.php и подключиться к пользовательскому действию WordPress. Здесь мы разместим некоторые настройки для TGM и определим, какие плагины включить.
|
01
02
03
04
05
06
07
08
09
10
11
|
/**
* Load the TGM Plugin Activator class to notify the user
* to install the Envato WordPress Toolkit Plugin
*/
require_once( get_template_directory() . ‘/inc/class-tgm-plugin-activation.php’ );
function tgmpa_register_toolkit() {
// Code here
}
add_action( ‘tgmpa_register’, ‘tgmpa_register_toolkit’ );
|
3. Задание плагина Toolkit
Далее мы настраиваем параметры, которые нам нужно включить плагин Toolkit. Внутри функции tgmpa_register_toolkit добавьте следующий код. Измените путь в параметре источника, если вы указали другую папку плагина на шаге 1 .
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
// Specify the Envato Toolkit plugin
$plugins = array(
array(
‘name’ => ‘Envato WordPress Toolkit’,
‘slug’ => ‘envato-wordpress-toolkit-master’,
‘source’ => get_template_directory() .
‘required’ => true,
‘version’ => ‘1.5’,
‘force_activation’ => true,
‘force_deactivation’ => false,
‘external_url’ => »,
),
);
|
Вы также можете добавить другие плагины, добавив больше массивов в переменную $plugins .
4. Настройка TGM
Затем настройте параметры для TGM. Также внутри функции tgmpa_register_toolkit добавьте следующий код ниже предыдущего шага для настройки TGM. Я не буду вдаваться в подробности того, что делают отдельные настройки. Если вам нужна дополнительная информация об этих настройках, веб-сайт активации плагинов TGM хорошо объяснит каждый из них.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
// i18n text domain used for translation purposes
$theme_text_domain = ‘default’;
// Configuration of TGM
$config = array(
‘domain’ => $theme_text_domain,
‘default_path’ => »,
‘parent_menu_slug’ => ‘admin.php’,
‘parent_url_slug’ => ‘admin.php’,
‘menu’ => ‘install-required-plugins’,
‘has_notices’ => true,
‘is_automatic’ => true,
‘message’ => »,
‘strings’ => array(
‘page_title’ => __( ‘Install Required Plugins’, $theme_text_domain ),
‘menu_title’ => __( ‘Install Plugins’, $theme_text_domain ),
‘installing’ => __( ‘Installing Plugin: %s’, $theme_text_domain ),
‘oops’ => __( ‘Something went wrong with the plugin API.’, $theme_text_domain ),
‘notice_can_install_required’ => _n_noop( ‘This theme requires the following plugin: %1$s.’, ‘This theme requires the following plugins: %1$s.’ ),
‘notice_can_install_recommended’ => _n_noop( ‘This theme recommends the following plugin: %1$s.’, ‘This theme recommends the following plugins: %1$s.’ ),
‘notice_cannot_install’ => _n_noop( ‘Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.’, ‘Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.’ ),
‘notice_can_activate_required’ => _n_noop( ‘The following required plugin is currently inactive: %1$s.’, ‘The following required plugins are currently inactive: %1$s.’ ),
‘notice_can_activate_recommended’ => _n_noop( ‘The following recommended plugin is currently inactive: %1$s.’, ‘The following recommended plugins are currently inactive: %1$s.’ ),
‘notice_cannot_activate’ => _n_noop( ‘Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.’, ‘Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.’ ),
‘notice_ask_to_update’ => _n_noop( ‘The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.’, ‘The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.’ ),
‘notice_cannot_update’ => _n_noop( ‘Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.’, ‘Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.’ ),
‘install_link’ => _n_noop( ‘Begin installing plugin’, ‘Begin installing plugins’ ),
‘activate_link’ => _n_noop( ‘Activate installed plugin’, ‘Activate installed plugins’ ),
‘return’ => __( ‘Return to Required Plugins Installer’, $theme_text_domain ),
‘plugin_activated’ => __( ‘Plugin activated successfully.’, $theme_text_domain ),
‘complete’ => __( ‘All plugins installed and activated successfully. %s’, $theme_text_domain ),
‘nag_type’ => ‘updated’
)
);
|
Измените переменную $theme_text_domain на текстовый домен, который вы используете, или оставьте его по default .
5. Запустите TGM
Наконец, давайте инициализируем TGM непосредственно перед завершением функции tgmpa_register_toolkit .
|
1
|
tgmpa( $plugins, $config );
|
Теперь сохраните ваши functions.php
Пробовать
Попробуйте активировать свою тему. Если у вас еще не установлен или не активирован плагин Envato WordPress Toolkit , то вы должны увидеть уведомление, подобное этому:

Вывод
Из того, что у нас есть сейчас, мы можем на самом деле остановиться на серии, и ваши пользователи смогут обновить тему изнутри администратора; тем не менее, пользователи смогут видеть, что есть обновление, только если они находятся внутри панели администратора Toolkit.
Во второй части учебного пособия вы узнаете, как интегрировать библиотеку Envato WordPress Toolkit и как отображать уведомление администратора, когда обновление темы доступно в ThemeForest.