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
  • 10login_redirectをフィルタリングする他の関数の中で関数が取る優先順位を表します
  • 3関数が受け入れる引数の数を表します。

参照:http ://codex.wordpress.org/Function_Reference/add_filter

于 2012-09-04T22:56:17.373 に答える