En este artículo:
Tenemos el usuario1 y queremos hacer propietario de todos sus posts al usuario nuevousuario.
Primero veamos los artículos existentes, que pertenecen al usuario1:
(si es que no existe ya) No nos olvidemos de crear el nuevo usuario en wordpress, que con la consulta sql que ejecutaremos se convertirá en el autor de las entradas.
Antes de proceder a la consulta SQL, tenemos que encontrar el ID del usuario anterior y del usuario nuevo.
Lo podemos encontrar en la sección usuarios de WordPress, al pulsar editar sobre un usuario, arriba en la barra de direcciones, se nos mostrará cual es el id del usuario:
Para listar todos los usuarios de WordPress, con todas las columnas, lo que incluye el nombre y el ID de usuario, usaremos esta consulta SQL
:
SELECT * FROM `wp_users` WHERE 1
Y podemos ver el resultado de la consulta, que muestra los usuarios existentes en WordPress:
Consulta sql para averiguar el ID de los autores, el título y el ID de los artículos en WordPress
:
SELECT`ID`,`post_title`,`post_author`FROM`wp_posts`
Ahora que ya tenemos una idea de los autores que hay en nuestra base de datos, y en qué artículos, vamos a comenzar con el cambio.
Hay varias cosas que debemos cambiar:
UPDATE `nombre_base_de_datos`.`wp_comments` SET `comment_author_email` = 'nuevousuario@eldominio.xyz' WHERE `comment_author_email` = 'usuario1@eldominio.xyz'
UPDATE `nombre_base_de_datos`.`wp_comments` SET `comment_author` = 'nuevousuario' WHERE `comment_author` = 'usuario1'
Aquí vemos un comentario del usuario1 antes de efectuar la consulta SQL:
Hemos ejecutado la consulta para asignar los comentarios del usuario usuario1 al usuario nuevousuario:
Y comprobamos que efectivamente, el autor de los comentarios ha sido modificado:
UPDATE `nombre_base_de_datos`.`wp_posts` SET `post_author` =5 WHERE `post_author` = 4
Veamos los resultados. Antes podíamos ver que el usuario1 era el autor de 5 entradas:
Después de las consultas anteriores, comprobamos que las publicaciones que tenían como autor al usuario1, ahora tienen como autor al usuario nuevousuario:
Si has intentado cambiar el nombre de un usuario desde la sección de administración de usuarios, verás que WordPress no deja hacerlo desde el backend:
Pues por mucho que nos diga WordPress, vamos a cambiarlo.
Abrimos phpmyadmin y nos disponemos a ejecutar estas consultas.
Primero, visualizamos los campos que tiene la tabla wp_users:
SELECT * FROM `wp_users` WHERE 1
Vemos que los campos que nos interesa cambiar son el campo user_login (nombre de usuario) y el campo user_nicename.
Pues los cambiamos así:
UPDATE `nombre_base_de_datos`.`wp_users` SET `user_login` = 'Perico los palotes' WHERE `wp_users`.`user_login` = 'usuario1'
Y comprobamos que el nombre de usuario ha cambiado:
Y en el perfil del usuario lo comprobamos, hemos cambiado sin problema el nombre del usuario:
El nicename es la versión “saneada” de user_login. Normalmente si tu nombre de usuario es simple (sin caracteres especiales), el nicename será igual. Pero si tu nicename es por ejemplo usuario@ejemplo.com, el nicename será usuarioejemplo-com. El nicename se usa en las ULR de autor.
Pues vamos a cambiar el nicename del usuario nuevousuario:
UPDATE `nombre_base_de_datos`.`wp_users` SET `user_nicename` = 'lo-cambie-con-sql' WHERE `wp_users`.`user_nicename` = 'nuevousuario'
Y ahora podremos ver ese nicename, en la URL de la página de autor: