Суть задачи: создание и редактирование постов производится под админом (admin), и надо при создании и публикации поста менять автора на другова, например на «Вася».
Конечно сначало надо создать пользователя «Вася» с правом редактировать посты.
Код автоматической замены автора поста
После того как создали нужного пользоватля, получаем его user_id и запоминаем.
А теперь сам код, его добавляем в файл функции (functions.php) поста вашей темы.
add_action( 'save_post', 'rain_edit_author' );
function rain_edit_author( $post_id ){
if ( ! wp_is_post_revision( $post_id ) ){
remove_action('save_post', 'rain_edit_author');
$author = 10; //user_id
$my_post = array();
$my_post['ID'] = $post_id;
$my_post['post_author'] = $author;
wp_update_post( wp_slash($my_post) );
add_action('save_post', 'rain_edit_author');
}
}
Действия основаны на хуке save_post которое срабатывает при сохранении поста.
Замена пользователя используя хук transition_post_status
add_action('transition_post_status', 'rain_edit_author', 10, 3);
function rain_edit_author( $new_status, $old_status, $post ){
$post_id = $post->ID;
if ( ! wp_is_post_revision( $post_id ) ){
if('publish' === $new_status && 'publish' !== $old_status){
remove_action('transition_post_status', 'rain_edit_author');
$author = 10;
$my_post = array();
$my_post['ID'] = $post_id;
$my_post['post_author'] = $author;
wp_update_post( wp_slash($my_post) );
add_action('transition_post_status', 'rain_edit_author', 10, 3);
}
}
}
Действие хука происходит при смене статуса поста.


