Welcher Hook sollte verwendet werden, um einen Post nur dann programmatisch zu erstellen, wenn der Masterpost aktualisiert wird?

Pippin und Jean-Baptiste Jung haben sehr gute Tutorials zum programmatischen Erstellen von Inhalten, wenn ein neuer Beitrag mit diesen vier Aktions-Hooks veröffentlicht wird …

  • veröffentlichen {post_type}
  • add_action (‘new_to_publish_ {post_type},
  • add_action (‘draft_to_publish_ {post_type},
  • add_action (‘pending_to_publish_ {post_type}

… 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('Ymd 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 function nur auszuführen, wenn ein Post aktualisiert wird? Vielen Dank!

Solutions Collecting From Web of "Welcher Hook sollte verwendet werden, um einen Post nur dann programmatisch zu erstellen, wenn der Masterpost aktualisiert wird?"

Sie können pre_post_update wie pre_post_update :

 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:

anstelle von wp_insert_post() verwende wp_update_post wie wp_update_post :

 //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 nie um Dinge wie den ursprünglichen Posttyp kümmern.

Diese zwei könnten deine Freunde sein:

 add_action('edit_post','your_action'); add_action('pre_post_update','your_action'); 

Siehe: Aktionsreferenz: Post-, Seiten-, Anhangs- und Kategorieaktionen für mehr Inspiration …

PS. Es hängt vom Kontext ab, aber Sie sollten auch wp_update_post anstelle von wp_insert_post verwenden .