Ejecutar una acción cuando una entrada es actualizada/publicada
La acción save_post
se dispara cuando una publicación se actualiza y/o publica, incluyendo cuando se inserta una nueva publicación.
<?php
add_action( 'save_post', 'wpse41912_save_post' );
function wpse41912_save_post()
{
// hacer algo
}
Si deseas que tus funciones se ejecuten solo cuando se está editando una publicación, puedes engancharte a edit_post
.
Si quieres que se dispare cuando una publicación pasa de borrador a publicada, puedes engancharte a transition_post_status
.

save_post es para cuando se crea o actualiza una entrada. Si quieres que se ejecute solo cuando se publique realmente, debes usar publish_post. Si no haces esto, los borradores y otros estados también se verán afectados.

save_post se dispara cada vez que se llama a wp_insert_post
. En todo: borradores, etc. Si quieres evitar que se ejecute durante guardados automáticos, puedes verificar if( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return
dentro de la función enganchada a save_post
.

Hay varias acciones que puedes utilizar. Por ejemplo:
save_post
edit_post
publish_post
- etc.
Aunque menos utilizados, también existen hooks de transición de estado de publicación.

El hook edit_post es probablemente el mejor hook... ya que se activa cada vez que se publica o actualiza una entrada/página. save_post es otra opción viable... quizás mejor si no necesitas que se active cuando se actualizan los comentarios.
http://codex.wordpress.org/Plugin_API/Action_Reference
La página de save_post en el codex tiene un ejemplo de una función que se ejecuta cada vez que se guarda una entrada:
http://codex.wordpress.org/Plugin_API/Action_Reference/save_post

Si deseas ejecutar una acción cuando cualquier entrada personalizada se actualice/guarde -
add_action('save_post','save_post_callback');
function save_post_callback($post_id){
global $post;
if ($post->post_type != 'MI_NOMBRE_DE_TIPO_DE_ENTRADA_PERSONALIZADA'){
return;
}
//si llegas aquí entonces es tu tipo de entrada, así que haz lo que necesites....
}
