WordPress: Validar metadatos y devolver mensaje de error en Gutenberg.
Anteriormente hice esto:
function my_save_post($post_id, $post, $update)
{
$errors = new WP_Error('my_errors', 'Algo salió mal:');
// si hay algún error
$errors->add('my_errors', 'Mensaje de error');
//...
//...
//...
if (count($errors->get_error_messages()) > 1) {
global $wpdb;
// establecer el estado del post como **pendiente** ya que sus metadatos tienen errores.
$wpdb->update($wpdb->posts, array('post_status' => 'pending'), array('ID' => $post->ID));
set_transient('my_errors', $errors, 10);
} else {
// publicar el post y actualizar los metadatos
}
}
add_action('save_post', 'my_save_post', 10, 3);
function my_notices()
{
if ($errors = get_transient('my_errors')): ?>
<div class="error">
<?php foreach ($errors->get_error_messages() as $error): ?>
<p><?php esc_html_e($error) ?></p>
<?php endforeach; ?>
</div><?php
delete_transient('my_errors');
endif;
}
add_action('admin_notices', 'my_notices');
Pero ahora no sé cómo implementarlo para validar los datos y, si hubo algún error, despublicar el post ya que tiene errores y luego mostrar algún mensaje de error en Gutenberg.
davy.ai
Para implementar la validación de datos y despublicar la entrada si hay errores en Gutenberg mediante PHP, puedes seguir los siguientes pasos:
enqueue_block_editor_assets
. Este script contendrá la lógica de validación y manejo de errores.my-script.js
, puedes agregar escuchadores de eventos para el eventosave
, que se activará cuando el usuario haga clic en el botón “Guardar”. Aquí es donde puedes realizar la validación de datos y manejar cualquier error.admin_notices
para mostrar cualquier mensaje de error en el editor de Gutenberg.Este método te permite realizar la validación de datos y despublicar la entrada si hay errores, al mismo tiempo que muestra mensajes de error personalizados en Gutenberg.