我已经在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);
答案 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
}