Автор сообщения не может быть обновлен / вставлен

Я пытаюсь программно обновить пост настраиваемого типа с помощью разрешений, разрешенных с помощью формы, и все работает нормально, за исключением того, что поле post_author для версии устанавливается в 0 вместо идентификатора, который я передаю в моем массиве. Все исправления получают 0, но сам пост получает правильный идентификатор автора. Я тоже не получаю WP_Error. Это просто игнорирование ввода. Я пробовал как wp_insert_post, так и wp_update_post с теми же данными, теми же результатами. Изменения и основной пост все сохраняют / создают штраф, за исключением поля post_author в версиях.

Соответствующий код функции:

function yq_process_answer_submission_callback() { // first check if data is being sent and that it is the data we want if ( isset( $_POST["post_var"] ) ) { $params = array(); parse_str($_POST["post_var"], $params); $name = get_userdata( $params['yq_author_id'] )->display_name; $posessive_name = $name.'\''.($name[strlen($name) - 1] != 's' ? 's' : ''); $title = $posessive_name . ' Response to Question: ' . get_the_title( $params['yq_question_id'] ); $post = array( 'ID' => $params['yq_answer_id'], 'post_title' => $title, 'post_name' => sanitize_title_with_dashes($title, '', 'save'), 'post_content' => $params['yq_body'], 'post_type' => 'yq_answer', 'post_author' => $params['yq_author_id'], 'post_status' => 'private', 'post_parent' => $params['yq_question_id'], 'comment_status'=> 'open', 'ping_status' => 'closed', ); if ($params['yq_answer_id'] == "") { $the_post = wp_insert_post( $post, true ); } else { $the_post = wp_update_post( $post, true ); } if (is_wp_error($the_post)) { echo "There was an error. Please try submitting again.\rError message: ".print_r($the_post->get_error_message()); } else { add_post_meta($the_post, 'to_instructor', $params['yq_send_to'], true); add_post_meta($the_post, 'instructor_notified', false, true); update_post_meta($the_post, 'to_instructor', $params['yq_send_to']); update_post_meta($the_post, 'instructor_notified', false); $response = array('question_id'=> get_post($the_post)->post_parent, 'answer_id' => $the_post, 'message'=>"Your response has been saved. It will be emailed to your instructor shortly." ); echo json_encode($response); } die(); } } 

А также код инициализации для типа ответа «ответ»:

 function create_yq_answers_post_type() { register_post_type( 'yq_answer', array( 'labels' => array( 'name' => 'Answers', 'singular_name' => 'Answer', 'menu_name' => 'Answers', 'add_new' => 'Add Answer', 'add_new_item' => 'Add New Answers', 'edit' => 'Edit', 'edit_item' => 'Edit Answers', 'new_item' => 'New Answers', 'view' => 'View Answers', 'view_item' > 'View Answers', 'search_items' > 'Search Answers', 'not_found' => 'No Answers Found', 'not_found_in_trash' => 'No Answers Found in Trash', ), 'description' => 'Answers type for questions.', 'capability_type' => 'answer', 'hierarchical' => false, 'supports' => array('title','author','editor','comments','revisions'), 'public' => false, 'has_archive' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 25, 'rewrite' => array('slug' => 'answers') ) ); }