Execută o acțiune când un articol este actualizat/publicat

10 feb. 2012, 19:26:56
Vizualizări: 26.3K
Voturi: 6

Aș dori să execut o interogare personalizată folosind meta date de fiecare dată când un articol este actualizat sau publicat.

Există ceva ce pot pune în functions.php pentru a declanșa aceste evenimente când apar?

0
Toate răspunsurile la întrebare 4
3
11

Acțiunea save_post se declanșează atunci când un articol este actualizat și/sau publicat - inclusiv atunci când un nou articol este inserat.

<?php
add_action( 'save_post', 'wpse41912_save_post' );
function wpse41912_save_post()
{
    // faci operații aici
}

Dacă dorești ca funcțiile tale să se declanșeze doar când un articol este editat, poți folosi hook-ul edit_post.

Dacă dorești să se declanșeze când un articol este mutat din stadiul de draft în publicat, poți folosi hook-ul transition_post_status.

10 feb. 2012 19:35:51
Comentarii

save_post se apelează atunci când un post este creat sau actualizat. Dacă vrei să se declanșeze doar când postul este publicat efectiv, ar trebui să folosești publish_post. Altfel, schițele și alte stări vor fi afectate și ele.

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

save_post se declanșează de fiecare dată când este apelat wp_insert_post. Pentru orice tip de post - schițe, etc. Dacă vrei să previi execuția în timpul salvării automate a schițelor, poți verifica if( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return în funcția legată de save_post.

chrisguitarguy chrisguitarguy
10 feb. 2012 22:08:02

+1 pentru funcția edit_post

Warface Warface
2 iul. 2014 16:28:45
0

Există mai multe acțiuni pe care le poți utiliza. De exemplu:

  • save_post
  • edit_post
  • publish_post
  • etc.

Deși mai puțin utilizate, există și hook-uri pentru tranzițiile de status ale postărilor.

10 feb. 2012 19:35:21
0

hook-ul edit_post este probabil cel mai bun hook... deoarece se declanșează ori de câte ori un post/pagină este publicat sau actualizat. save_post este o altă opțiune viabilă... poate mai bună dacă nu ai nevoie să se declanșeze când comentariile sunt actualizate.

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

pagina save_post din codex conține un exemplu de funcție care se declanșează ori de câte ori un post este salvat:

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

10 feb. 2012 19:33:13
0

Dacă dorești să efectuezi o acțiune atunci când orice post personalizat este actualizat/salvat -

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;
}
//dacă ajungi aici, înseamnă că este tipul tău de postare, așa că poți face ce ai nevoie...
}
6 sept. 2018 09:47:23