3

我从这个例子中做了一个简单的插件:

<?php
/*
Plugin Name: Redirect on login
Plugin URI: some URI
Description: Custom Redirect on login
Author: Some Autor
Version: 1.0
Author URI: some URI
*/

function my_login_redirect($redirect_to, $request){
global $current_user;
get_currentuserinfo();
//is there a user to check?
if(is_array($current_user->roles))
{
    //check for admins
    if(in_array("administrator", $current_user->roles))
       return home_url("/wp-admin/?administrator");
    else
        return home_url("?NOTadministrator");
}
}
add_filter("login_redirect", "my_login_redirect", 10, 3);

?>

它仅在您已经登录时才有效。

请尝试一下 - 将插件代码放在您的 WordPress 插件目录中 - 激活它 -确保您已完全退出/wp-admin/?administrator- 如果您已经登录,它只会将您重定向到。

在这种情况下,10、3代表什么?

从本网站和其他网站上的其他示例 - 人们正在参考$user->ID而不是全局$user_ID和其他信息 - 但我没有看到任何完整的代码显示使用这些方法的完整功能的复制粘贴插件。我不是要求某人为我做我的工作——我只是真的需要看到一个完整的工作示例。

如果您有一个完整的工作示例,清楚地显示了所需的所有变量和值 - 您可以在这里发布吗?非常感谢。

我正在添加另一个示例,然后要跳下一座桥——自从我第一次开始编程以来,我还没有在某件事上浪费太多时间。

我不明白login_redirect是如何工作的——如果我在调用它时无法确定用户信息。

     function my_login_redirect(){


    if($user->ID){

        if($user->has_cap('manage_options')) {
            return home_url("/wp-admin/?administrator");
        }else{
            return home_url("?NOTadministrator");
        }

    }else{

        echo "WHY DOES $user->ID NOT HAVE ANY VALUE YET WHEN CALLING 'login_redirect'? How am I to decide where to send the user - if I do not know who the user is because - I can not get the user ID yet?!";

    }
 }

 add_filter('login_redirect', 'my_login_redirect', 10, 3);
4

1 回答 1

2
  • 10表示您的函数在其他过滤 login_redirect 中的优先级
  • 3表示您的函数接受的参数数量。

请参阅:http ://codex.wordpress.org/Function_Reference/add_filter

于 2012-09-04T22:56:17.373 回答