Pippin und Jean-Baptiste Jung haben sehr gute Tutorials zum programmgesteuerten Erstellen von Inhalten, wenn ein neuer Beitrag mit diesen vier Aktionshooks veröffentlicht wird ...
... um dieses Skript auszuführen ...
global $user_ID;
$new_post = array(
'post_title' => 'My New Post',
'post_content' => 'Lorem ipsum dolor sit amet...',
'post_status' => 'publish',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => $user_ID,
'post_type' => 'post',
'post_category' => array(0)
);
$post_id = wp_insert_post($new_post);
Welchen Hook sollte ich verwenden, um diese Funktion auszuführenonly, wenn ein Beitrag aktualisiert wird? Vielen Dank!
sie können den Aktions-Hook pre_post_update
folgendermaßen verwenden:
add_action('pre_post_update','post_updating_callback');
function post_updating_callback($post_id){
global $post;
// verify if this is an auto save routine.
// If it is our form has not been submitted, so we dont want to do anything
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
if ($post->post_status == "publish"){
//do update stuff here.
}
}
Aktualisieren:
verwenden Sie anstelle von wp_insert_post()
wp_update_post
wie folgt:
//first get the original post
$postarr = get_post($post_id,'ARRAY_A');
//then set the fields you want to update
$postarr['post_title'] = "new title";
$postarr['post_content'] = "new edited content";
$post_id = wp_update_post($postarr);
auf diese Weise müssen Sie nur die Felder angeben, die aktualisiert wurden, und sich keine Gedanken darüber machen, was der ursprüngliche Beitragstyp war.
Diese beiden könnten deine Freunde sein:
add_action('edit_post','your_action');
add_action('pre_post_update','your_action');
Weitere Informationen finden Sie unter: Aktionsreferenz: Aktionen für Veröffentlichungen, Seiten, Anhänge und Kategorien .
PS. Es hängt vom Kontext ab, aber Sie können auch wp_update_post anstelle von wp_insert_post verwenden.