2016-11-22 1 views
3

Ich möchte Erstveröffentlichung wird eine neue Post eine Benachrichtigung jederzeit senden (nicht, wenn es bearbeitet wird)Was ist der WordPress-Hook, wenn ich einen neuen Beitrag veröffentliche (nicht, wenn ich einen veröffentlichten aktualisiere)?

Ich habe versucht:

add_action('publish_post', 'postPublished'); 

Aber nachveröffentlichten ist auch aufgerufen, wenn ich einen bereits veröffentlichten Beitrag aktualisieren. Ich will es nur genannt NUR bei der ersten Veröffentlichung eines Beitrags.

Grüße

+0

Sie nur die ID des Beitrags überprüfen – vico

Antwort

3

Ich denke, der Haken Sie suchen draft_to_publish

ist Wenn Sie wollen nur eine E-Mail an einem neuen Post schicken würde ich Targeting berücksichtigen, wenn der Beitrag veröffentlicht wird. Man konnte sehen, auch an der transition_post_status Haken und nur konditionalisieren wenn die Post bearbeitet wurde, so etwas wie dies funktionieren könnte:

function so_post_40744782($new_status, $old_status, $post) { 
    if ($new_status == 'publish' && $old_status != 'publish') { 
     $author = "foobar"; 
     $message = "We wanted to notify you a new post has been published."; 
     wp_mail($author, "New Post Published", $message); 
    } 
} 
add_action('transition_post_status', 'so_post_40744782', 10, 3); 
+0

Dies wäre, wo ich auch anfangen würde. Hier sind ein paar weitere Informationen: https://codex.wordpress.org/Post_Status_Transitions – AndyWarren

+1

@AndyWarren Ich habe gerade darüber nachgedacht und einen Schnitt gemacht. –

+0

Was sind diese Parameter: 'so_post_40744782', 10, 3? – yarek

0

Sie Post Status Transitions aus dem Wordpress Codex gelesen, um sollte das Problem vollständig zu verstehen.

Eine mögliche Lösung, die den meisten Fällen zum Beispiel bedeckt ist:

add_action('draft_to_publish', 'postPublished'); 
add_action('future_to_publish', 'postPublished'); 
add_action('private_to_publish', 'postPublished'); 
Verwandte Themen