Wordpress: функция активации_плагина не находит файл

Я пытаюсь активировать плагин из темы functions.php, однако получаю сообщение об ошибке «Файл плагина не существует», хотя путь указан правильно. Вот мой код:

function activate_plugins( $plugin_path ) {

    // Get already-active plugins   
    $active_plugins = get_option('active_plugins');
    // Make sure your plugin isn't active
    if (isset($active_plugins[$plugin_path]))
        return;

    // Include the plugin.php file so you have access to the activate_plugin() function
require_once(ABSPATH .'/wp-admin/includes/plugin.php');
    // Activate your plugin
    $res = activate_plugin($plugin_path);
    if ( is_wp_error( $res ) ) {
        echo $res->get_error_message();
    }

    return null;
}
activate_plugins( get_bloginfo('template_directory') . '/plugins/multiple-post-thumbnails/multi-post-thumbnails.php' );

Я пытаюсь загрузить плагин из папки темы, потому что в настоящее время я разрабатываю тему, которую хочу продать в будущем, и не хочу, чтобы покупателю приходилось устанавливать плагин вручную после установки темы. Что я могу сделать?


person Radu    schedule 27.03.2015    source источник


Ответы (2)


Плагины должны находиться в каталоге плагинов WP ./wp-content/plugins/. Глядя на свой код, вы пытаетесь загрузить свой плагин из папки «плагины», расположенной внутри каталога шаблона.

Вместо этого переместите свой плагин в правильный каталог, как указано выше, и используйте ABSPATH . PLUGINDIR, чтобы получить правильный путь.

activate_plugins( ABSPATH . PLUGINDIR . '/multiple-post-thumbnails/multi-post-thumbnails.php' );
person Dario Muñoz    schedule 27.03.2015
comment
Я пытаюсь загрузить плагин из папки темы, потому что в настоящее время я разрабатываю тему, которую хочу продать в будущем, и не хочу, чтобы покупателю приходилось устанавливать плагин вручную после установки темы. Что я могу сделать? - person Radu; 27.03.2015
comment
Проверьте это, он должен делать именно то, что вы ищете, но плагин все равно должен находиться в нужной папке, однако это может помочь вам автоматически установить его при активации темы. github.com/thomasgriffin/TGM-Plugin-Activation - person Dario Muñoz; 27.03.2015

Исправлено с помощью активации плагина TGM. Спасибо, Дарио Муньос!

person Radu    schedule 27.03.2015