私のワードプレスサイトのユーザーを移行した後 管理者ではない は、サイトの ログイン後のホームページにリダイレクトされます 。古いサイトでは、それらはwp-adminにリダイレクトされました。管理者はwp_adminにリダイレクトされます。
ログイン後にユーザーをwp-admin
にリダイレクトする必要があります。
Siteurlをデータベース(wp_options
)から変更しました。また、このフィルタをfunctions.php
に追加しました。
function my_login_redirect( $redirect_to, $request, $user ) {
return admin_url();
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
何か助けてください?ありがとう、そしてハッピーイースター!
ええ、私はそれを考え出した!実際、私のテーマはfunctions.php
に次のようなリダイレクトがありました。
// Block Access to /wp-admin for non admins.
function custom_blockusers_init() {
if ( is_user_logged_in() && is_admin() && !current_user_can( 'administrator' ) ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'init', 'custom_blockusers_init' ); // Hook into 'init'
あなたがしなければならないのはあなた自身の役割能力を追加することだけです、例えば:!current_user_can( 'manage-reports' )
これ 私はとても助かりました。
@こんにちは、リリです。しかし、DOING_AJAXもチェックする必要があります。
// Block Access to /wp-admin for non admins.
function custom_blockusers_init() {
if ( is_user_logged_in() && is_admin() && !current_user_can( 'administrator' ) && (defined( 'DOING_AJAX' ) && !DOING_AJAX) ) ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'init', 'custom_blockusers_init' ); // Hook into 'init'
以下のコードは期待通りに動作しています。このコードは、管理者以外のユーザーがwp-adminまたはプロファイルページにアクセスすることを制限します。
add_action( 'admin_init', 'redirect_non_admin_users' );
/**
* Redirect non-admin users to home page
*
* This function is attached to the 'admin_init' action hook.
*/
function redirect_non_admin_users() {
if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
wp_redirect( home_url() );
exit;
}
}