Cambiar programáticamente el autor de una entrada

4 may 2015, 19:15:08
Vistas: 21.5K
Votos: 10

Dado un ID de usuario, $user_id, y un ID de entrada, $post_id, ¿cómo puedo actualizar programáticamente el autor de una entrada de WordPress?

Nota: estas entradas ya están creadas y el autor no se puede establecer durante la creación. Otro proceso está creando la entrada y estableciendo por defecto al administrador como autor. No tengo acceso a la creación de la entrada pero sí tengo acceso después de que se crea.

// Método 1: Usando wp_update_post()
$args = array(
    'ID' => $post_id,
    'post_author' => $user_id
);
wp_update_post($args);

// Método 2: Actualización directa en la base de datos
global $wpdb;
$wpdb->update(
    $wpdb->posts, 
    array('post_author' => $user_id),
    array('ID' => $post_id)
);
0
Todas las respuestas a la pregunta 2
2
28

No debería haber ningún problema. Prueba esto:

$arg = array(
    'ID' => $post_id,
    'post_author' => $user_id,
);
wp_update_post( $arg );
4 may 2015 22:53:10
Comentarios

esto resulta en que la publicación tenga al usuario como su autor, pero si intentas consultar las publicaciones de un usuario no devuelve nada - parece que el usuario no sabe sobre la publicación cuando se ha creado de esa manera. También significa que cuando eliminas el usuario las publicaciones no se eliminan, ya que se consultan desde el usuario eliminado

Abraham Brookes Abraham Brookes
20 ene 2021 15:03:50

@AbrahamBrookes lo que mencionaste no ocurrió en mi caso. no pude confirmar :)

mdehghani mdehghani
30 ene 2021 22:16:11
1
-2

también puedes simplemente agregar otra cuenta de administrador. Elimina la que está publicando los artículos y WordPress te preguntará a quién asignarlos. Elige el autor preferido y listo.

7 dic 2018 01:32:18
Comentarios

Ten en cuenta que el requisito es programáticamente.

fuxia fuxia
7 dic 2018 03:02:08