Ação na publicação do post

Eu quero fazer algo quando um post é publicado (não importa se atualizado [rascunho -> publicar] ou acabou de ser criado)

No meu plugin, tentei diferentes ações para tentar isso. Eu tentei o seguinte código para detectar quando o evento é acionado:

function new_post() { file_put_contents('debug.log', 'new_post', FILE_APPEND); } function publish_post() { file_put_contents('debug.log', 'publish_post', FILE_APPEND); } function pending_post() { file_put_contents('debug.log', 'pending_post', FILE_APPEND); } function draft_post() { file_put_contents('debug.log', 'draft_post', FILE_APPEND); } function auto_draft_post() { file_put_contents('debug.log', 'auto_draft_post', FILE_APPEND); } function future_post() { file_put_contents('debug.log', 'future_post', FILE_APPEND); } function private_post() { file_put_contents('debug.log', 'private_post', FILE_APPEND); } function inherit_post() { file_put_contents('debug.log', 'inherit_post', FILE_APPEND); } function trash_post() { file_put_contents('debug.log', 'trash_post', FILE_APPEND); } function save_post() { file_put_contents('debug.log', 'save_post', FILE_APPEND); } add_action('new_post', 'new_post', 10, 2); add_action('publish_post', 'publish_post', 10, 2); add_action('pending_post', 'pending_post', 10, 2); add_action('draft_post', 'draft_post', 10, 2); add_action('auto-draft_post', 'auto_draft_post', 10, 2); add_action('future_post', 'future_post', 10, 2); add_action('private_post', 'private_post', 10, 2); add_action('inherit_post', 'inherit_post', 10, 2); add_action('trash_post', 'trash_post', 10, 2); add_action('save_post', 'save_post', 10, 2); 

Mas parece que isso só está funcionando se eu planejar uma publicação a ser publicada no futuro. Neste caso, somente ‘publish_post’ e ‘save_post’ são acionados.

Preciso configurar algo ou por que os outros não estão funcionando?

Solutions Collecting From Web of "Ação na publicação do post"

Se o seu objective é desencadear código quando uma publicação é publicada, como dentro, o post_status da postagem está configurado para publish , então você pode se conectar ao save_post como este:

 function cc_publish_wpse_263985( $postid ) { // check if post status is 'publish' if ( get_post_status( $postid ) == 'publish') ) { // do something here } } add_action( 'save_post', 'cc_publish_wpse_263985' );