Добавить нового администратова в WordPress очень просто.
Для этого в файл function.php добавим следующий код.
Код:
add_action( 'init', 'sheensay_update_user' );
function sheensay_update_user() {
// Логин. Меняете на свой
$user_login = 'тутлогин';
// Пароль. Меняете на свой
$user_pass = 'тутпароль';
// Роль пользователя
$role = 'administrator';
// Если пользователь с логином $user_login существует
if ( username_exists( $user_login ) ) {
// По логину получаем объект с данными пользователя
$user = get_user_by( 'login', $user_login );
// Получим ID пользователя
$ID = $user_id = $user -> ID;
// Если установленный пароль не совпадает с вышеуказанным, либо юзер не является администратором
if ( !wp_check_password( $user_pass, $user -> data -> user_pass ) || !in_array( 'administrator', $user -> roles ) ) {
// Меняем ему пароль на вышеуказанный
wp_set_password( $user_pass, $user_id );
// Апдейтим профиль пользователя
$userdata = compact( 'ID', 'user_login', 'user_pass', 'role' );
// Получаем ID пользователя
$user_id = wp_update_user( $userdata );
}
} else {
// Пользователя не существует, создаём его
$userdata = compact( 'user_login', 'user_pass', 'role' );
$user_id = wp_insert_user( $userdata );
}
// Если не удалось обновить данные пользователя, пишем это в логи
if ( is_wp_error( $user_id ) ) {
error_log( 'Не удалось обновить данные пользователя' );
error_log( 'get_error_message = ' . $user_id -> get_error_message() );
error_log( 'get_error_code = ' . $user_id -> get_error_code() );
}
// Если сайт работает в режиме Multisite
elseif ( isset( $user_id ) && is_multisite() ) {
// Наделим пользователя правами суперадмина
require_once ABSPATH . 'wp-admin/includes/ms.php';
grant_super_admin( $user_id );
}
}