ACF_Internal_Post_Type::update_post
Updates an ACF post.
Метод класса: ACF_Internal_Post_Type{}
Хуки из метода
Возвращает
Массив
.
Использование
$ACF_Internal_Post_Type = new ACF_Internal_Post_Type(); $ACF_Internal_Post_Type->update_post( $post );
- $post(массив) (обязательный)
- The ACF post to update.
Список изменений
С версии 6.1 | Введена. |
Код ACF_Internal_Post_Type::update_post() ACF Internal Post Type::update post ACF 6.4.2
public function update_post( $post ) { // Validate internal post type. $post = $this->validate_post( $post ); // May have been posted. Remove slashes. $post = wp_unslash( $post ); // Parse types (converts string '0' to int 0). $post = acf_parse_types( $post ); /** * Fires before updating an ACF post in the database. * * @since 6.1 * * @param array $post The main ACF post array. */ $post = apply_filters( "acf/pre_update_{$this->hook_name}", $post ); // Make a backup of internal post type data and remove some args. $_post = $post; acf_extract_vars( $_post, array( 'ID', 'key', 'title', 'menu_order', 'fields', 'active', '_valid', '_parent' ) ); // Create array of data to save. $save = array( 'ID' => $post['ID'], 'post_status' => $post['active'] ? 'publish' : 'acf-disabled', 'post_type' => $this->post_type, 'post_title' => $post['title'], 'post_name' => $post['key'], 'post_excerpt' => sanitize_title( $post['title'] ), 'post_content' => maybe_serialize( $_post ), 'menu_order' => $post['menu_order'], 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_parent' => ! empty( $post['_parent'] ) ? (int) $post['_parent'] : 0, ); // Unhook wp_targeted_link_rel() filter from WP 5.1 corrupting serialized data. remove_filter( 'content_save_pre', 'wp_targeted_link_rel' ); // Slash data. // WP expects all data to be slashed and will unslash it (fixes '\' character issues). $save = wp_slash( $save ); // Update or Insert. if ( $post['ID'] ) { wp_update_post( $save ); } else { $post['ID'] = wp_insert_post( $save ); } $this->flush_post_cache( $post ); /** * Fires immediately after an ACF post has been updated. * * @since 6.1 * * @param array $post The main ACF post array. */ do_action( "acf/update_{$this->hook_name}", $post ); return $post; }