He desarrollado un plugin de WordPress que necesita realizar un procesamiento adicional cuando se guarda una publicación de un tipo de publicación personalizado.Problema con WordPress "save_post" Acción
La solución más lógica fue utilizar la acción "save_post". Al ser invocado, el controlador de acción crea o actualiza un registro de base de datos en una tabla personalizada (dependiendo de si se hace clic en "Crear publicación" o "Actualizar publicación").
Lo he implementado y parecía funcionar perfectamente, pero hay un problema menor que me gustaría resolver. Parece que "save_post" también se activa al cargar la página "Crear publicación" por primera vez (es decir, antes de que se ingresen las entradas del usuario y antes de que se presione el botón enviar nuevo/cambios).
Esto significa que la tabla de base de datos personalizada se está llenando con una fila en blanco por cada publicación nueva que se guarda. También significa que hay una fila en blanco por cada vez que se carga la página de agregar publicación.
Aquí es una versión simplificada de mi manejador "save_post":
function do_save_post($post_id) {
if (get_post_type($post_id) !== 'mycustomtype')
return $post_id;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return $post_id;
if (!current_user_can('edit_mycustomtype'))
return $post_id;
echo 'This happens when selecting "Add New" from admin sidebar.';
echo 'Even though post has not been saved or updated.';
echo 'This should only happen when button on right of editor is clicked.';
}
¿Cómo puedo detectar si en realidad se está guardando el puesto?
¿Cuál es el punto de devolver $ post_id cuando falla? – helgatheviking
@helgatheviking Permite que otros ganchos realicen su procesamiento con el '$ post_id' correcto. Mi gancho no está fallando, solo quiere controlar cuándo llevar a cabo el procesamiento. El '$ post_id' se pasa de cada gancho a cada gancho por devolución. –
@lea_hayes gracias por la respuesta! No sabía que el $ post_id se pasó de un gancho a otro. No he notado ningún problema con el bloqueo del código si no lo devuelvo. – helgatheviking