1

wp-admin 以外の管理者をリダイレクトしたい。ユーザー(管理者外)がwp-adminを書いた場合、別のページに転送します。このために、私は使用します(wp-includes/function.phpにコードを追加しました)

function restrict_admin_with_redirect() {
    if ( ! current_user_can( 'manage_options' ) && ( ! wp_doing_ajax() ) ) {
    wp_safe_redirect( 'aaaa'  );
  ``exit;
    0}}  add_action( 'admin_init', 'restrict_admin_with_redirect', 1 ); 

それは機能しますが、管理中に、テーマまたはアドオンで問題が発生します。テーマ ページにテーマを追加しようとすると、エラーが発生します。エラーは、予期しないエラーが発生したことです。上記の機能を削除すると、問題ありません。すべてが良くなっています。問題はどこから来たのですか?

EDİT: 別のコードを試してみたところ、うまくいきました

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' );
4

2 に答える 2

1

フィルターのログイン URLについては、こちらを参照してください。

add_filter( 'login_url', 'my_login_page', 10, 3 );
function my_login_page( $login_url, $redirect, $force_reauth ) {
    return home_url( '/my-login-page/?redirect_to=' . $redirect );
}
于 2018-12-24T02:54:30.630 に答える
0

current_user_can('manage_options') を使用する代わりに current_user_can('administrator') を使用してください。これにより、権限が付与された問題が修正され、実行する必要があります。

于 2018-12-24T03:21:58.917 に答える