Такой функционал поможет тем, кто хочет организовать на своем сайте авторизацию, например через социальные сети. Но при этом, чтобы после авторизации, пользователь смог бы только комментировать записи или доступ к закрытым материалам, но не смог попасть в консоль WordPress. Ведь вы не хотите, чтобы пользователь правил данные или попросту видел консоль.
И так, перейдем к самому интересному, как же организовать проверку и перенаправление, если не админ авторизовался. Все делается очень просто. Вам понадобится файл пользовательских функций function.php в конец которого нужно добавить следующий код:
Добавлять следует в самый конец перед закрывающим тегом php - ?>, если его нет, то просто в самый конец.
function only_admin()
{
if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
wp_redirect( site_url() );
}
}
add_action( 'admin_init', 'only_admin', 1 );
Можете проверять работу функции. Если вы администратор, то без проблем войдете в консоль. Если у вас на сайте есть пробный аккаунт пользователя не админа, тоже протестируйте. После авторизации, вас должно перекинуть на главную страницу.
Данная функция всегда у меня под рукой. Я ставлю ее на 80% тем что создаю. Чаще всего заказчики не хотят давать доступ в консоль даже авторам. Они устанавливают плагины личных кабинетов, что дают возможность настроить профиль без доступа в консоль. Так же, данная функция помогает частично обезопасить ваш сайт, от нежелательного доступа. Надеюсь данный материал вам поможет и вы воспользуетесь ним в своих проектах.
На этом все, спасибо за внимание. 🙂