it-swarm.com.de

Aktion beim Veröffentlichen nach dem Veröffentlichen

Ich möchte etwas tun, wenn ein Beitrag veröffentlicht wird (egal ob aktualisiert [Entwurf -> veröffentlichen] oder gerade erstellt)

In meinem Plugin habe ich verschiedene Aktionen ausprobiert, um dies zu versuchen. Ich habe den folgenden Code verwendet, um festzustellen, wann welches Ereignis ausgelöst wird:

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);

Aber es scheint so, als würde das nur funktionieren, wenn ich plane, einen Beitrag in der Zukunft zu veröffentlichen. In diesem Fall werden nur 'publish_post' und 'save_post' ausgelöst.

Muss ich etwas konfigurieren oder warum funktionieren die anderen nicht?

2
TheBalco

Wenn Sie Code auslösen möchten, wenn ein Beitrag veröffentlicht wird, wie in, wird der post_status des Beitrags auf publish gesetzt, und Sie können sich folgendermaßen in save_post einhängen:

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' );
2