Given a user id, $user_id, and post id, $post_id, how can I programatically update a wordpress post author?

Note: these posts are already created and the author cannot be set upon creation. Another process is creating the post and defaulting to the admin as the author. I don't have access to creating the post but have access after it is created.


It shouldn't be any problem. Try this:

$arg = array(
    'ID' => $post_id,
    'post_author' => $user_id,
wp_update_post( $arg );
  • this ends up with the post having the user as its author, but if you try to query a users posts it returns nothing - it seems that the user doesn't know about the post when it has been authored that way. It also means that when you delete the user the posts don't get deleted, as they are queried from the deleted user Jan 20 at 13:03
  • @AbrahamBrookes what you mentioned didn't happen in my case. couldn't confirm :)
    – mdehghani
    Jan 30 at 20:16

you can also just add another admin account. delete the one that's authoring the posts and WP will ask where to assign posts. Choose preferred author, done.

  • Note that the requirement is programmatically.
    – fuxia
    Dec 7 '18 at 1:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.