En alguna que otra ocasión he tenido que tomar el control de un WordPress del que, aunque teniendo acceso por FTP, no disponía de un usuario administrador y su correspondiente contraseña para ejecutar las acciones necesarias en su panel de control.
El proceso que he seguido ha sido el siguiente:
- En el directorio
/wp-contents/
hay que crear, si no existe ya, el directoriomu-plugins/
, ya que todos los plugins que estén dentro de este directorio se cargarán antes del propio WordPress. - Copiar el archivo con el código dentro de este directorio (
/wp-content/mu-plugins/crea-usuario.php
). - Hay que crear un usuario que no exista por lo que si no se está seguro de cuales pueden existir, nos inventamos uno «extraño».
- Por motivos de seguridad, después de haber ejecutado el script y logrado entrar, he procedido a borrarlo.
El código es el siguiente:
<?php
add_action(
'init',
function () {
$usuario = 'usuario_nuevo';
$password = 'contraseña_segura';
$email = 'tu-email@correo.com';
if (!username_exists($usuario)) {
$user_id = wp_create_user($usuario, $password, $email);
$user = new WP_User($user_id);
$user->set_role('administrator');
}
}
);
Por último ya se puede uno autenticar en WordPress teniendo pleno acceso y control.