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

它可以工作,但是在管理员中,问题出现在主题或附加组件中。当我想在主题页面上添加主题时出现错误。错误是发生了意外错误。当我删除上面的功能时,没问题,一切都在变好。问题出在哪里?

编辑: 我尝试了另一个代码并且它有效

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 回答