Как проверить активен ли плагин? Как узнать включен ли плагин?

21 апр. 2011 г., 15:35:18
Просмотры: 28.8K
Голосов: 4

Я использую плагины mingle и mingle-forum.

Я хочу показать определенную часть на моем сайте только если эти два плагина активны. Как я могу это реализовать?

<?php if ( is_plugin_active('mingle-forum') ) { ?>
                    <div id="login"><?php include (TEMPLATEPATH . '/inc/userlogin.php' ); ?></div>
                <?php } ?>

Это вызывает PHP ошибку: Call to undefined function is_plugin_active

Есть идеи, что я делаю неправильно?

обновление:

<?php if ( plugin_active('plugin-directory/mingle-forum/wpf-main.php') ) { ?>
                    <div id="login"><?php include (TEMPLATEPATH . '/inc/userlogin.php' ); ?></div>
                <?php } ?>
1
Комментарии

Где (в каком файле или хуке) вы используете эту функцию?

Ján Bočínec Ján Bočínec
21 апр. 2011 г. 15:51:15
Все ответы на вопрос 5
3

Эта функция находится в файле wp-admin/includes/plugin.php, поэтому я предполагаю, что она не подключается темой.

Вы можете либо использовать require для её подключения, либо создать свою собственную версию - см. здесь: http://wordpress.org/support/topic/is_plugin_active

ОБНОВЛЕНО:

Пожалуйста, проверьте is_plugin_active

21 апр. 2011 г. 16:02:35
Комментарии

спасибо, возможно я нашел решение, но у меня все равно не получается. Функция plugin_active определена в моем файле functions.php и не вызывает ошибок. Однако мой div.login НИКОГДА не отображается, независимо от того, активен плагин или нет. Может быть, я проверяю неверный путь? Есть идеи, что я мог сделать не так?

mathiregister mathiregister
22 апр. 2011 г. 10:41:09

нашел решение. "plugin-directory", конечно же, должно быть именем директории, в которой находится основной файл плагина. Я думал, что "plugin-directory" — это путь к папке, где находятся все файлы плагина.

mathiregister mathiregister
22 апр. 2011 г. 10:43:05

точно, mathiregster, это то, что все упускают здесь. plugin-directory скорее всего будет именем вашего плагина

Tim Hallman Tim Hallman
15 сент. 2021 г. 17:20:58
1

Существует два способа проверить, активен ли плагин или нет.

  1. Вы можете использовать функцию is_plugin_active, чтобы проверить активность плагина.
  2. Если плагин имеет класс, то вы можете проверить его следующим образом:

    if (class_exists('YITH_Woocompare_Frontend')) 
    {
    echo 'ваш код';
    }
    

Указанный выше класс относится к плагину YITH WooCommerce Compare. Данный код проверяет существование класса, и только в этом случае код внутри скобок будет выполнен.

3 авг. 2016 г. 09:04:16
Комментарии

собирался поставить плюс, но утверждение про класс совершенно неверное. Что произойдёт, если имя класса изменится? А is_plugin_active — это, по сути, принятый ответ :(

Mark Kaplun Mark Kaplun
3 авг. 2016 г. 09:50:07
2

Вы также можете проверить, активен ли плагин:

$pluginList = get_option( 'active_plugins' );
$plugin = 'PLUGIN_DIR/FILE_NAME.php'; 
if ( in_array( $plugin , $pluginList ) ) {
    // Плагин 'mg-post-contributors' активен
}

Также можно использовать более простой вариант:

if ( is_plugin_active( 'PLUGIN_DIR/FILE_NAME.php' ) ) {
  //плагин активирован
} 
23 янв. 2015 г. 09:40:45
Комментарии

Автор не смог использовать is_plugin_active, так как эта функция доступна только на страницах админки.

jeteon jeteon
13 окт. 2015 г. 12:06:41

Это решение помогло мне проверить название плагина. Спасибо.

Memonic Memonic
23 апр. 2020 г. 19:02:43
1

Вы можете просто использовать стандартную функцию WordPress. Эта функция находится в файле wp-admin/includes/plugin.php.

Просто передайте путь к файлу плагина относительно директории плагинов.

$pluginPath = 'akismet/akismet.php';
if ( is_plugin_active( $pluginPath ) ) {
    echo 'Плагин активирован';
} else {
   echo 'Плагин не активирован';
}

Для получения более подробной информации о функции is_plugin_active смотрите ссылку ниже:

https://developer.wordpress.org/reference/functions/is_plugin_active/

30 окт. 2019 г. 10:15:28
Комментарии

Спасибо, @Sohel Khan; ваша подсказка была действительно полезной для меня; я использовал/использую её для создания шкалы здоровья на своём сайте :) Удачи!

eLeXeM eLeXeM
14 нояб. 2020 г. 20:03:53
1

правильный и актуальный способ проверить, активен ли плагин, — это установить функцию

function_exists()

для вашего кода

14 окт. 2021 г. 14:37:42
Комментарии

Добро пожаловать в wpse! правильный и актуальный способ проверить, активен ли плагин, — это использовать function_exists. Что делать, если плагин использует ООП и не содержит функций, а только методы? Ваш ответ не учитывает эту ситуацию.

Buttered_Toast Buttered_Toast
14 окт. 2021 г. 16:16:43