Você pode chamar is_plugin_active () em modelos e também em páginas de usuários, o que pode ser útil para plugins relacionados (ou seja, requer o plugin 'xyz' para operar meu novo plugin). Você precisa incluir manualmente o arquivo plugin.php conforme observado nos documentos is_plugin_active () no Codex.
Aqui está um exemplo funcional que uso em meus pacotes complementares premium para garantir que o plug-in de base livre esteja ativo antes de invocar um objeto de complemento. Requer certos ganchos & filtros para estar disponível no plugin base ou irá falhar.
include_once(ABSPATH.'wp-admin/includes/plugin.php');
if (!function_exists('is_plugin_active') || !is_plugin_active('store-locator-le/store-locator-le.php')) {
return;
}
Como um aparte, se você está tendo problemas com is_plugin_active () de dentro de um login de administrador ativo, é provável porque você está testando antes de iniciar o admin_init. admin_menu é acionado antes de admin_init e fazer testes em admin_menu me "picou" antes. O nome "admin_init", que parece contra-intuitivo para mim desde admin_menu já é executado. Eu penso no init como "primeira coisa a rodar" ... talvez admin_kinda_init () seja melhor. :)