Cuando se actualiza una publicación, hay algunos enlaces que se activan:
-
'pre_post_update'
es una acción activada justo antes de que la publicación se actualice, el argumento pasado son 2: $post_ID
y $data
que es una matriz de todos las otras columnas de la base de datos de la tabla de publicaciones
-
'transition_post_status'
es un gancho activado en la actualización, y pasa 3 argumentos: $ new_post_status, $old_post_status
y $post
(objeto).
- Luego, hay otros 2 ganchos de transición activados, pero se denominan dinámicamente, lo que significa que la acción efectiva activada depende del estado anterior y nuevo de la publicación.
"{$old_status}_to_{$new_status}"
y "{$new_status}_{$post->post_type}"
. Primero pase el único objeto de publicación como argumento, el segundo pase la identificación de publicación y el objeto de publicación. Encuentre la documentación aquí .
-
'edit_post'
que pasan 2 argumentos: $post_ID
y $post
(objeto)
-
'post_updated'
que pasan 3 argumentos: $post_ID
, $post_after
(publicar objeto después de la actualización), $post_before
(publicar objeto antes de la actualización)
- Otro enlace dinámico:
"save_post_{$post->post_type}"
que depende del tipo de publicación, por ejemplo. para publicaciones estándar es 'save_post_post'
y para páginas es 'save_post_page'
, este gancho pasa 3 argumentos: $post_ID
, $post
(objeto) y $update
que es un booleano (verdadero o falso) que es verdadero cuando se realiza una actualización, de hecho, este enlace se activa también cuando se guarda una publicación por primera vez.
-
'
save_post
' que se activa tanto en la actualización como en el primer guardado, y pasa los mismos 3 argumentos del enganche anterior.
-
'
save_post_{$post_type}
' que se activa tanto en la actualización como en el primer guardado, y pasa los mismos 2 primeros argumentos del enganche anterior.
- Finalmente tiene '
wp_insert_post
' , que se activa tanto en la actualización como en el primer guardado, y pasa los mismos 3 argumentos de los 2 ganchos anteriores.
Estos enlaces se activan cada vez que se actualiza una publicación, tanto a través de las páginas de administración en el backend como a través de la actualización "manualmente" usando wp_update_post
o wp_insert_post
.
Cuando la publicación se actualiza utilizando páginas de administración, se activan enlaces adicionales, un ejemplo es 'update_post_redirect'
o 'post_updated_messages'
. (Consulte esto y esto respuestas WPSE para ejemplos de uso).
Tenga en cuenta que si desea hacer uso de algún argumento enganche, no es el primero, debe declararlo explícitamente en add_action
call.
Por ejemplo, Si desea usar el argumento '$update'
(que es el 3er) del enganche 'save_post'
, necesita agregar 3
como $accepted_args
param en add_action
(see docs ):
// if you don't add 3 as as 4th argument, this will not work as expected
add_action( 'save_post', 'my_save_post_function', 10, 3 );
function my_save_post_function( $post_ID, $post, $update ) {
$msg = 'Is this un update? ';
$msg .= $update ? 'Yes.' : 'No.';
wp_die( $msg );
}
Última nota relacionada con timing : debe asegurarse de que add_action
se llame antes de que se active la acción, o no hará nada.
Por ejemplo, este código:
wp_update_post( $post );
add_action( 'save_post', 'my_function', 10, 3 );
no hará nada, porque la acción se agregará después de que se haya disparado el gancho. Aquí es fácil reconocerlo, en el mundo real el código no siempre es así.