| @@ -265,25 +265,17 @@ | ||
| 265 | 265 | /** |
| 266 | 266 | * Creates a single post. |
| 267 | 267 | */ |
| 268 | 268 | public function create_post( $request ) { |
| 269 | - global $wpdb; | |
| 270 | 269 | |
| 271 | 270 | $params = $request->get_params(); |
| 272 | - $meta_inputs = isset( $params['meta_input'] ) ? $params['meta_input'] : []; | |
| 273 | - unset( $params['meta_input'] ); | |
| 274 | - $id = wp_insert_post( $params ); | |
| 275 | - | |
| 276 | - if ( isset( $meta_inputs ) && is_array( $meta_inputs ) && ! empty( $meta_inputs ) ) { | |
| 277 | - | |
| 278 | - foreach ( $meta_inputs as $meta_key => $meta_value ) { | |
| 279 | - $meta_key = sanitize_key( $meta_key ); | |
| 280 | - if ( null !== $meta_value ) { | |
| 281 | - $meta_value = addslashes( $meta_value ); | |
| 282 | - } | |
| 283 | - $wpdb->query( "INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value) values ({$id}, '{$meta_key}', '{$meta_value}')" ); | |
| 271 | + if ( isset( $params['meta_input'] ) && is_array( $params['meta_input'] ) ) { | |
| 272 | + foreach ( $params['meta_input'] as $meta_key => $meta_value ) { | |
| 273 | + $params['meta_input'][ $meta_key ] = maybe_unserialize( $meta_value ); | |
| 284 | 274 | } |
| 285 | 275 | } |
| 276 | + | |
| 277 | + $id = wp_insert_post( $params ); | |
| 286 | 278 | |
| 287 | 279 | if ( ! $id || is_wp_error( $id ) ) { |
| 288 | 280 | return [ |
| 289 | 281 | 'error' => true, |