He cerrado la entrada diciendo «usando FTP» como podría haber dicho cualquier de estas combinaciones:
- Añadir un usuario administrador a WordPress en el fichero functions.php
- Añadir un usuario administrador a WordPress en un plugin de funciones
- Añadir un usuario administrador a WordPress a través del sistema de archivos
- Añadir un usuario administrador a WordPress usando PHP
Y unas pocas más también serían válidas. Básicamente quiero describiros una circunstancia, que por desgracia, se da en ocasiones. En un sitio sobre el que tienes control, hacerlo sobre un sitio del que no tienes o no te han dado control no sería ético ni legal; has perdido la contraseña de administrador o quien te está pidiendo asistencia no sabe cómo darte un usuarios con privilegios de administración.
Esto aunque os parezca raro es bastante frecuente. Cuando alguien llega pidiendo ayuda porque tiene un problema, no siempre tienen o saben darte un acceso de administrador. Ya no digamos en el caso que un buen hackeo les ha dejado sin privilegios de administración.
Existen variantes para hacer esto por otros medios, como a través de MySQL o MariaDB (con phpMyAdmin) pero este método me gusta por ser directo y usar la API de WordPress.
Veamos cómo hacerlo.
Primer paso: encontrar una zona del código donde ponerlo
Esto es lo primero, saber dónde ponerlo. Tiene que ser un trozo de código que se vaya a ejecutar. Por ejemplo, no tendría sentido ponerlo en un fichero de un plugin que sólo se ejecuta a través de una llamada AJAX. Por lo general suele ser buen sitio:
- El fichero functions.php del tema hijo si lo tiene
- O en su defecto del tema padre (total, si una vez lo hagas vas a borrarlo)
- O cualquier fichero principal de un plugin que sepas que está activado
Segundo paso: el código a introducir
Vamos allá, es bastante auto explicativo aunque más abajo os doy alguna pincelada:
function cod_crear_cuenta_usuario_administrador(){ $user = 'nombre_de_usuario'; $pass = 'password_elegido'; $email = 'tu@correo.com'; if ( !username_exists( $user ) && !email_exists( $email ) ) { $user_id = wp_create_user( $user, $pass, $email ); $user = new WP_User( $user_id ); $user->set_role( 'administrator' ); } } add_action('init','cod_crear_cuenta_usuario_administrador');
Así punto por punto:
- Indicamos usuario, contraseña y email asociado
- Si el nombre de usuario no existe, y el correo no existe (esto son comprobaciones para que la creación de usuario pueda darse sin errores)
- Creamos un usuario
- Y le damos el rol administrador
Aparte si os fijáis, se une al hook «init» porque es un hook que se ejecuta al comienzo, pero lo suficientemente tarde como para que podamos usar estas funciones.