Aktuellen Beitrag mit der benutzerdefinierten Speichern-Schaltfläche speichern

Ich möchte eine benutzerdefinierte Schaltfläche in meinem “Post bearbeiten” -Bildschirm anzeigen, die den aktuellen Post speichert (alles einschließlich benutzerdefinierter Felder) und dann eine function ausführt (in meinem Fall auf eine andere Seite redirect).

Ich weiß, wie ich nach dem Speichern der Post mit der Aktion save_posts und wp_redirect aber ich kann nicht herausfinden, wie Sie den Post speichern, wenn eine benutzerdefinierte Schaltfläche angeklickt wird.

Dies ist meine function zum Umleiten mit save_post (was für mich nicht funktioniert, da ich eine benutzerdefinierte Schaltfläche verwenden muss):

 function redirect_after_save_post() { global $post; if ( 'event' == get_post_type() ) { $url = 'http://www.google.com'; wp_redirect( $url ); exit; } } add_action( 'save_post', 'redirect_after_save_post' ); 

Solutions Collecting From Web of "Aktuellen Beitrag mit der benutzerdefinierten Speichern-Schaltfläche speichern"

Ich denke, Sie injizieren etwas Code, um Ihre benutzerdefinierte Schaltfläche anzuzeigen.

Sie können versuchen, die Sicherungsauftragsaktion in Ihrem Code hinzuzufügen:

 do_action('save_post'); 

Und dann fügen Sie Redirect-Code hinzu, seien Sie vorsichtig mit der unendlichen Schleife.

Hier ist was ich mache. Es erstellt keine neue Schaltfläche, sondern setzt ein Häkchen neben der Schaltfläche zum Veröffentlichen / Aktualisieren. Die Idee ist, dass, wenn Sie die Schaltfläche vor der Veröffentlichung / Update klicken. Es wird Ihre function beim Speichern ausführen. Wenn dies nicht der Fall ist, wird das System wie gewohnt speichern. Ich habe die functionsnamen verallgemeinert, so dass Sie sie spezifischer als auch Schaltflächentitel machen können.

 function rt_custom_save_action(){ global $post; if (get_post_type($post) != 'post') //Choose Post type HERE return false; $html = '
'; $html .= '
'; $html .= ''; $html .= '
'; $html .= '
'; echo $html; } add_action( 'post_submitbox_misc_actions', 'rt_custom_save_action' ); function rt_project_updated_save_dosomething( $post_id ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; // If this is just a revision, don't do anything. //if ( wp_is_post_revision( $post_id ) ) // return; // only go if user checked action checkbox. if(isset($_POST['custom_action'])){ //PUT SOMETHING HERE THAT YOU WANT TO HAPPEN } } add_action( 'save_post', 'rt_project_updated_save_dosomething' ); //if you change the custom post type above, you have to change it here too (save_post_CUSTOMPOSTNAME)

Wenn Sie eine Schaltfläche verwenden möchten, nehme ich an, Sie könnten dies tun, ich habe die Checkbox in der function deaktiviert und 2 Optionen hinzugefügt. Probiere eins dann das andere:

 function rt_custom_save_action(){ global $post; if (get_post_type($post) != 'post') //Choose Post type HERE return false; $html = '
'; $html .= '
'; // $html .= ''; //try this button code first. //$html .= ''; //try this one next but don't use both. $html .= '
'; $html .= '
'; echo $html; } add_action( 'post_submitbox_misc_actions', 'rt_custom_save_action' ); function rt_project_updated_save_dosomething( $post_id ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; // If this is just a revision, don't do anything. if ( wp_is_post_revision( $post_id ) ) return; //PUT SOMETHING HERE THAT YOU WANT TO HAPPEN } add_action( 'save_post', 'rt_project_updated_save_dosomething' ); //if you change the custom post type above, you have to change it here too (save_post_CUSTOMPOSTNAME)