Установка плагинов на автомате в премиум теме WordPress
Думаю те кто когда либо качали темы для WordPress или покупали их на таких биржах как themeforest, замечали что многие темы после установки и активации просят установить для них необходимые плагины. Сегодня мы поговорим о библиотеке TGM Plugin Activation которая дает возможность устанавливать плагины после активации темы, узнаем как в премиум темах все плагины ставятся на автомате. Плагины можно будет устанавливать как из репозитория WordPress, так и из других внешних источников, также можно будет устанавливать плагины которые разрабатывали вы и положили в вашу теме. Класс этой библиотеки устанавливает и активирут плагины на основе WordPress API, а это значит что проблем при обновлении быть не должно.
Как настроить TGM Plugin Activation
Настройку мы будем проводить на стандартной теме TwentyEleven, но вы можете воспользоваться и другой темой, проверьте только чтобы в вашей теме в файле style.css, был добавлен комментарий вида: Text Domain: twentyeleven. Ниже в коже мы будем его использовать в переменной $theme_text_domain = ‘twentyeleven’;.
Для начала нам необходимо скачать библиотеку из сайта разработчиков или из GitHub и положить в корень нашей темы файл class-tgm-plugin-activation.php и папку plugins со всем ее содержимым.
После того как необходимые файлы скопированы нам нужно подключить наш класс к шаблону. Подключение класса осуществляем через файл functions.php.
В файл functions.php, в верхней его части добавляем код вызова функции установки обязательных плагинов:
1 2 |
require_once dirname(__FILE__).'/class-tgm-plugin-activation.php'; add_action('tgmpa_register','my_theme_register_required_plugins'); |
Ниже добавим код самой функции:
1 2 3 4 5 6 7 8 9 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 35 36 37 38 39 40 41 42 43 44 45 46 47 |
function my_theme_register_required_plugins(){ $plugins = array( /* установка плагинов из папки темы, которые вы поставляете в комплекте */ array( 'name' => 'TGM Example Plugin', // имя плагина 'slug' => 'tgm-example-plugin', // Имя плагина (совпадает с именем папки плагина) 'source' => get_stylesheet_directory().'/plugins/tgm-example-plugin.zip', // источник плагина 'required' => false, // 'required' - плагин обязательый? нужно ли го активировать поле установки? ), /* установка плагинов на автомате из репозитория wordpress */ array( 'name' => 'Edit Howdy', 'slug' => 'edit-howdy', // слуг можно посмотреть в ссылке к плагину // https://wordpress.org/plugins/edit-howdy/ - edit-howdy ), array( 'name' => 'Evanto dashboard', 'slug' => 'evantodashboard', 'source' => get_stylesheet_directory().'/plugins/evantodashboard.zip', // источник плагина 'required' => false, ), ); $theme_text_domain = 'twentyeleven'; // текстовый домен темы $config = array( /*domain => $theme_text_domain, // текстовый домен, точно такой как указан в вашей теме*/ /*dafault_path => '', // Абсолютный путь по умолчанию к папке плагинов*/ /*menu => 'install-my-theme-plugin', // Menu slug*/ 'settings' => array( /*'page_title' => __('Install Required Plugins', $theme_text_domain)*/ /*'menu_title' => __('Install Plugins', $theme_text_domain)*/ /*'instructions_install' => __( 'The %1$s plugin is required for this theme. Click on the big blue button below to install and activate %1$s.', $theme_text_domain ), // %1$s = plugin name */ /*'instructions_activate' => __( 'The %1$s is installed but currently inactive. Please go to the <a href="%2$s">plugin administration page</a> page to activate it.', $theme_text_domain ), // %1$s = plugin name, %2$s = plugins page URL */ /*'button' => __( 'Install %s Now', $theme_text_domain ), // %1$s = plugin name */ /*'installing' => __( 'Installing Plugin: %s', $theme_text_domain ), // %1$s = plugin name */ /*'oops' => __( 'Something went wrong with the plugin API.', $theme_text_domain ), // */ /*'notice_can_install' => __( 'This theme requires the %1$s plugin. <a href="%2$s"><strong>Click here to begin the installation process</strong></a>. You may be asked for FTP credentials based on your server setup.', $theme_text_domain ), // %1$s = plugin name, %2$s = TGMPA page URL */ /*'notice_cannot_install' => __( '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.', $theme_text_domain ), // %1$s = plugin name */ /*'notice_can_activate' => __( 'This theme requires the %1$s plugin. That plugin is currently inactive, so please go to the <a href="%2$s">plugin administration page</a> to activate it.', $theme_text_domain ), // %1$s = plugin name, %2$s = plugins page URL */ /*'notice_cannot_activate' => __( '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.', $theme_text_domain ), // %1$s = plugin name */ /*'return' => __( 'Return to Required Plugins Installer', $theme_text_domain ), // */ ), ); tgmpa( $plugins, $config ); } |
Если вы все сделали правильно, то увидите сообщение о том, что необходимо установить плагины, которые обязательны для данной темы, сообщение будет такого вида.
Нажимаем на кнопку Begin installing plugins и у вас появиться окно со списком ваших плагинов.
В окне мы можем видеть, что пункт Edit Howdy отображается как ссылка, при нажатии вы сможете почитать об этом плагине, так как мы его устанавливаем из репозитория. Остальные плагины будут неактивны, так как будут устанавливаться с папки темы.
Запустим автоматическую установку плагинов
- Выберите плагины которые необходимо установить,
- Выберите действие «install»,
- Нажмите применить.
Если все сделали правильно, то у вас 2 плагина установятся и один выведет ошибку (An error occurred while installing Evanto dashboard: Загрузка не удалась. Предоставлен неверный URL..). Ошибка появилась потому что в нашу тему мы не добавляли файл плагина Evanto dashboard.
Осталось только отметить все нужные плагины и активировать их.
Если все сделали правильно, то вы получите сообщение (The following plugins were activated successfully: Edit Howdy and TGM Example Plugin).
Если вы не установили все плагины и решили делать установку по одному, при этом вы потеряли окно установки, то вы всегда сможете вернуться на страницу установки через меню администратора в разделе Внешний вид -> Install Plusins.
Вот и все, пробуем устанавливать свои плагины! Удачи в разработке удобных и качественных тем для WordPress.

/*

- Базовый курс по веб-дизайну;
- Верстка сайтов;
- Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
- Разработка сайтов на PHP.