Ejecutar una acción cuando una entrada es actualizada/publicada

10 feb 2012, 19:26:56
Vistas: 26.3K
Votos: 6

Me gustaría ejecutar una consulta personalizada usando algunos metadatos cada vez que una entrada se actualiza o publica.

¿Hay algo que pueda poner en functions.php para que se ejecute cuando ocurran esos eventos?

0
Todas las respuestas a la pregunta 4
3
11

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.

10 feb 2012 19:35:51
Comentarios

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.

Sterling Hamilton Sterling Hamilton
10 feb 2012 20:51:09

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.

chrisguitarguy chrisguitarguy
10 feb 2012 22:08:02

+1 para la función edit_post

Warface Warface
2 jul 2014 16:28:45
0

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.

10 feb 2012 19:35:21
0

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

10 feb 2012 19:33:13
0

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....
}
6 sept 2018 09:47:23