Eseguire un'azione quando un post viene aggiornato/pubblicato

10 feb 2012, 19:26:56
Visualizzazioni: 26.3K
Voti: 6

Vorrei eseguire una query personalizzata utilizzando alcuni meta dati ogni volta che un post viene aggiornato o pubblicato.

C'è qualcosa che posso inserire nel file functions.php per attivare queste azioni quando si verificano questi eventi?

0
Tutte le risposte alla domanda 4
3
11

L'azione save_post viene attivata quando un articolo viene aggiornato e/o pubblicato - incluso quando viene inserito un nuovo articolo.

<?php
add_action( 'save_post', 'wpse41912_save_post' );
function wpse41912_save_post()
{
    // fai qualcosa
}

Se vuoi che le tue funzioni vengano attivate solo quando un articolo viene modificato, puoi agganciarti a edit_post.

Se vuoi che venga attivato quando un articolo passa da bozza a pubblicato, puoi agganciarti a transition_post_status.

10 feb 2012 19:35:51
Commenti

save_post viene utilizzato quando un post viene creato o aggiornato. Se vuoi intervenire solo quando viene effettivamente pubblicato, dovresti usare publish_post. Se non fai questa distinzione, anche le bozze e altri stati verranno influenzati.

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

save_post viene attivato ogni volta che viene chiamato wp_insert_post. Su tutto - bozze, ecc. Se vuoi evitare che venga chiamato durante i salvataggi automatici delle bozze, puoi aggiungere un controllo if( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return nella funzione collegata a save_post.

chrisguitarguy chrisguitarguy
10 feb 2012 22:08:02

+1 per la funzione edit_post

Warface Warface
2 lug 2014 16:28:45
0

Ci sono diverse azioni che puoi utilizzare. Ad esempio:

  • save_post
  • edit_post
  • publish_post
  • ecc.

Anche se meno utilizzati, esistono anche hook per le transizioni dello stato del post.

10 feb 2012 19:35:21
0

l'hook edit_post è probabilmente il migliore... poiché viene attivato ogni volta che un post/pagina viene pubblicato o aggiornato. save_post è un'altra opzione valida... forse migliore se non hai bisogno che venga attivato quando i commenti vengono aggiornati.

http://codex.wordpress.org/Plugin_API/Action_Reference

la pagina save_post nel codex contiene un esempio di una funzione che viene attivata ogni volta che un post viene salvato:

http://codex.wordpress.org/Plugin_API/Action_Reference/save_post

10 feb 2012 19:33:13
0

Se vuoi eseguire un'azione quando un custom post viene aggiornato/salvato -

add_action('save_post','save_post_callback');
function save_post_callback($post_id){
global $post; 
if ($post->post_type != 'MY_CUSTOM_POST_TYPE_NAME'){
    return;
}
//se arrivi qui allora è il tuo post type quindi fai quello che devi fare....
}
6 set 2018 09:47:23