{“code”:”rest_meta_database_error”,”message”:”Could not update meta value in database.”,”data”:{“key”:”custom_meta_key”,”status”:500}}
Este error viene de la línea 300 de wp-includes/rest-api/fields/class-wp-rest-meta-fields.php
, y para entender por qué llamas update_metadata()
retorno falso para valores metaconseizados sin cambios y serializados.
En el siguiente hook podemos pasar un booleano con valor true, y solo indicando nombre de campo personalizado en la variable array llamada $serialized_meta_keys.
Recuerda que puedes agregar los campos personalizados que deseemos.
El siguiente hook usalo en tu functions.php de tu tema WordPress.
function womo_update_post_metadata( $value, $object_id, $meta_key = false, $meta_value, $prev_value ) {
$meta_type = 'post';
$serialized_meta_keys = array( 'custom_meta_key' );
if ( defined('REST_REQUEST') && REST_REQUEST && in_array( $meta_key, $serialized_meta_keys ) ) {
$meta_cache = wp_cache_get( $object_id, $meta_type . '_meta' );
if ( ! $meta_cache ) {
$meta_cache = update_meta_cache( $meta_type, array( $object_id ) );
$meta_cache = $meta_cache[$object_id];
}
if ( isset( $meta_cache[$meta_key] ) ) {
return true;
}
}
return $value;
}
add_filter( 'update_post_metadata', 'womo_update_post_metadata', 10, 5 );