Как проверить активен ли плагин? Как узнать включен ли плагин?
Я использую плагины 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 } ?>
Эта функция находится в файле wp-admin/includes/plugin.php
, поэтому я предполагаю, что она не подключается темой.
Вы можете либо использовать require
для её подключения, либо создать свою собственную версию - см. здесь: http://wordpress.org/support/topic/is_plugin_active
ОБНОВЛЕНО:
Пожалуйста, проверьте is_plugin_active

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

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

Существует два способа проверить, активен ли плагин или нет.
- Вы можете использовать функцию is_plugin_active, чтобы проверить активность плагина.
Если плагин имеет класс, то вы можете проверить его следующим образом:
if (class_exists('YITH_Woocompare_Frontend')) { echo 'ваш код'; }
Указанный выше класс относится к плагину YITH WooCommerce Compare. Данный код проверяет существование класса, и только в этом случае код внутри скобок будет выполнен.

Вы также можете проверить, активен ли плагин:
$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' ) ) {
//плагин активирован
}

Вы можете просто использовать стандартную функцию 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/
