如何使用php代码确定是否在wordpress中安装了插件

时间:2014-08-25 22:48:05

标签: php wordpress plugins

我已经在wordpress中单独创建了2个相关的插件,现在我想将页面重定向到不同的位置取决于安装的插件。我不知道如何确定插件是否已安装。

function pr_st_loginRedirect( $redirect_to, $request, $user ){
    global $user;
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        //check for admins
        if ( in_array( 'administrator', $user->roles ) ) 
        {
            return home_url()."/wp-admin/";
        } 
        else if ( in_array( 'manager', $user->roles ) )
        {
          if(first plugin is installed)// what should I write in if statement?
            {
                return home_url()."/wp-admin/admin.php?page=creat_mysite_emp_list_entry";
            }
            else
            {
                return  home_url()."/wp-admin/admin.php?page=students_std_list_students";
            }  
        }
        else if ( in_array( 'student', $user->roles ) )
        {
            return home_url()."/wp-admin/admin.php?page=students_std_show_report_card_to_student";
        }
    }                          
}

add_filter("login_redirect", "pr_st_loginRedirect", 10, 3);

3 个答案:

答案 0 :(得分:1)

if (is_plugin_active('myplugin/myplugin.php'))应该有用。

答案 1 :(得分:0)

另一种选择是

if( function_exists( 'specific_plugin_function' ) )

if( class_exists( 'SpecificPluginClass' ) )

答案 2 :(得分:0)

检查插件是否已激活。

注意:在wp-admin / includes / plugin.php中定义,因此只能在管理页面中使用,并且必须将对此函数的任何引用挂钩到admin_init或稍后的操作。如果你想在模板中使用这个功能,你需要手动要求plugin.php,一个例子是下面的用法

Admin area 
<?php
/**
 * Detect plugin. For use in Admin area only.
 */
if ( is_plugin_active( 'plugin-directory/plugin-file.php' ) ) {
  //plugin is activated
} 


Front end 
<?php
/**
 * Detect plugin. For use on Front End only.
 */
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );

// check for plugin using plugin name
if ( is_plugin_active( 'plugin-directory/plugin-file.php' ) ) {
  //plugin is activated
} 

Function Reference is plugin active