Суть задачи: создание и редактирование постов производится под админом (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); } } }
Действие хука происходит при смене статуса поста.