私は現在、私の管理ユーザーがwordpress管理者インターフェース内のダッシュボード以外のページにリダイレクトされるようにリダイレクトを設定しようとしています。
私の条件を省略した場合、リダイレクトは機能しますが、管理者以外のユーザーもリダイレクトされるため、これは望ましくありません。
これは私がfunctions.php内に持っているコードです。
add_filter('login_redirect', 'dashboard_redirect');
function dashboard_redirect($url) {
global $current_user;
get_currentuserinfo();
$level = (int) $current_user->wp_user_level;
if ( $level > 10 ) {
$url = 'wp-admin/edit.php';
}
return $url;
}
Userlevels を使用しないでください。ユーザレベルはWP 2.0に置き換えられ、3.0以降正式に廃止されました。
add_filter( 'login_redirect', 'dashboard_redirect' );
function dashboard_redirect( $url ) {
if ( current_user_can( 'manage_options' ) ) {
$url = esc_url( admin_url( 'edit.php' ) );
}
return $url;
}
あなたが望むことをするでしょう。
Yanさんはこの単純なアクションを 'login_form'に追加しました(詳しくは site を参照してください)。
たとえば、ダッシュボードにリダイレクトするには、次のようにします。
add_action('login_form', 'redirect_after_login');
function redirect_after_login() {
global $redirect_to;
if (!isset($_GET['redirect_to'])) {
$redirect_to = get_option('siteurl') . '/wp-admin/index.php';
}
}
このcurrent_user条件で関数をラップしてみてください。
if (current_user_can('administrator')) {
// Your Redirect Code Here
}