Автоматическая установка встроенных плагинов при активации темы?

18 июл. 2013 г., 18:24:24
Просмотры: 16K
Голосов: 4

Я рассматриваю возможность использования http://tgmpluginactivation.com/ для активации необходимых плагинов для моей пользовательской темы на этапе активации темы.

Насколько я понимаю, этот класс только автоматически активирует плагины, но не устанавливает автоматически плагины, встроенные в мою тему.

Кто-нибудь знает, возможно ли автоматически устанавливать плагины при активации темы? Желательно, способом, который все еще может использовать TGM?

3
Комментарии

Как вы собираете эти плагины? Они включены в загрузку с инструкциями по добавлению темы в wp-content/themes или вы включаете их в директорию темы?

JPollock JPollock
19 июл. 2013 г. 05:12:34

@JPollock они упакованы вместе с темой в виде отдельных zip-файлов. TGM настроен на поиск в этой директории при установке. Все работает нормально, когда пользователь вручную нажимает ссылку "Установить плагин" после активации темы, но я искал автоматизированный способ установки плагинов без каких-либо действий со стороны пользователя.

teamcrisis teamcrisis
19 июл. 2013 г. 13:06:27
Все ответы на вопрос 2
4

Отредактированный ответ:

TMG — это очень популярный плагин для автоматической установки плагинов в WordPress, и многие авторы премиальных тем используют его. Вы можете получить PHP-класс здесь https://github.com/thomasgriffin/TGM-Plugin-Activation. Также при скачивании вы получите PHP-файл с именем example.php. Вам просто нужно подключить этот файл example.php в ваш файл functions.php, и затем вы можете отредактировать его для настройки автоматической установки необходимых плагинов для вашей темы.

Вам нужно сделать что-то подобное в файле example.php:

// Это пример того, как включить плагин, поставляемый вместе с темой.
        array(
            'name'               => 'WpMania Slider', // Название плагина.
            'slug'               => 'WpmSlider', // Слаг плагина (обычно имя папки).
            'source'             => get_template_directory_uri() . '/assets/plugins/plugins/WpmSlider.zip', // Источник плагина.
            'required'           => true, // Если false, плагин будет только 'рекомендован', а не обязателен.
            'version'            => '', // Например, 1.0.0. Если указано, активная версия плагина должна быть не ниже этой.
            'force_activation'   => true, // Если true, плагин активируется при активации темы и не может быть деактивирован до смены темы.
            'force_deactivation' => true, // Если true, плагин деактивируется при смене темы, полезно для плагинов, специфичных для темы.
            'external_url'       => '', // Если указано, переопределяет URL API по умолчанию и указывает на внешний URL.
        ),

Спасибо, Саббир

11 апр. 2014 г. 13:59:28
Комментарии

Куда следует поместить этот массив? Не все знакомы с TMG, и что это означает?

Tom J Nowell Tom J Nowell
11 апр. 2014 г. 14:07:11

TMG — это очень популярный плагин для автоматической установки плагинов в WordPress, и многие авторы премиум-тем используют его. Вы можете получить PHP-класс здесь https://github.com/thomasgriffin/TGM-Plugin-Activation. Также, когда вы скачаете его, вы получите PHP-файл с именем example.php. Вам просто нужно подключить этот файл example.php в ваш файл function.php, и вы можете отредактировать его для автоматической установки необходимых плагинов для вашей темы.

Sabbir H Sabbir H
11 апр. 2014 г. 18:04:59

Отлично, вам следует отредактировать ваш ответ, чтобы включить эту информацию

Tom J Nowell Tom J Nowell
11 апр. 2014 г. 18:12:11

Я обновил ответ по запросу

Sabbir H Sabbir H
12 апр. 2014 г. 12:38:00
1

Функция activate_plugin - это то, что вам нужно. Разместите её в действии after_setup_theme.

Использование

activate_plugin ( $plugin, $redirect = '', $network_wide = false, $silent = false )

Страница документации для функции activate_plugin выглядит не слишком многообещающе, и я не уверен, будет ли она работать, так как никогда её не использовал. Думаю, стоит попробовать?

Активация плагинов при активации темы потенциально может вызвать проблемы и сломать сайты.

Ссылки

26 июл. 2013 г. 23:42:01
Комментарии

Конечно, обязательное использование плагина может сделать вашу тему менее гибкой, поэтому должен быть запасной вариант. В своем предыдущем ответе я рекомендовал использовать плагин TMG. Там есть возможность сделать плагин обязательным (пожалуйста, проверьте мой ответ выше как пример). Если вы просто измените параметр "required" на "false", вы сможете обойти эту ситуацию.

Sabbir H Sabbir H
14 апр. 2014 г. 01:35:55