web-dev-qa-db-de.com

Führen Sie eine Aktion aus, wenn der Beitrag aktualisiert/veröffentlicht wird

Ich möchte eine benutzerdefinierte Abfrage mit einigen Metadaten ausführen, wenn ein Beitrag aktualisiert oder veröffentlicht wird.

Gibt es etwas, das ich in die functions.php einfügen kann, um zu zünden, wenn diese Ereignisse auftreten?

5
Kyle

Die Aktion save_post wird ausgelöst, wenn ein Beitrag aktualisiert und/oder veröffentlicht wird - auch wenn ein neuer Beitrag eingefügt wird.

<?php
add_action( 'save_post', 'wpse41912_save_post' );
function wpse41912_save_post()
{
    // do stuff
}

Wenn Sie möchten, dass Ihre Funktionen nur ausgelöst werden, wenn ein Beitrag bearbeitet wird, können Sie sich in edit_post einbinden.

Wenn Sie möchten, dass ein Beitrag ausgelöst wird, wenn er vom Entwurf zum Veröffentlichen verschoben wird, können Sie sich in transition_post_status einhängen.

11
chrisguitarguy

Es gibt mehrere Aktionen, die Sie verwenden können . Zum Beispiel:

  • save_post
  • edit_post
  • publish_post
  • usw.

Während weniger verwendet, gibt es auch Post-Status-Übergangshaken .

5
Chip Bennett

der Hook edit_post ist wahrscheinlich der beste Hook ... da er immer dann ausgelöst wird, wenn ein Beitrag/eine Seite veröffentlicht oder aktualisiert wird. save_post ist eine weitere praktikable Option. Vielleicht ist sie besser, wenn Sie sie nicht zum Auslösen benötigen, wenn Kommentare aktualisiert werden.

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

die Seite save_post im Codex enthält ein Beispiel für eine Funktion, die beim Speichern eines Posts ausgelöst wird:

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

3
helgatheviking

Wenn Sie beim Aktualisieren/Speichern eines benutzerdefinierten Beitrags eine Aktion ausführen möchten -

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;
}
//if you get here then it's your post type so do your things....
}
0
Amritosh pandey