Gibt es eine Möglichkeit, eine Revision eines Beitrags NUR mit einer neuen Schaltfläche in der Meta-Box zu erstellen?

Ganz sicher gibt es dafür keinen Weg, aber hat irgendjemand irgendwelche Ideen, wie ich sowas machen könnte? Ich möchte Autorevisionen deaktivieren und NUR eine Revision erstellen, wenn eine Schaltfläche geklickt wird (wahrscheinlich benutzerdefinierte Schaltfläche in der Metabox platziert). Wäre ein super nützlicher Weg, um mehr von einem Versionskontrollszenario mit den Posts anstelle von Revisionen zu machen, jedes Mal, wenn Sie einen Rechtschreiberrors beheben.

Könnten wir das beispielsweise verwenden und mit einem Klick auf die Schaltfläche verknüpfen?

/** * Saves an already existing post as a post revision. * * Typically used immediately prior to post updates. * * @package WordPress * @subpackage Post_Revisions * @since 2.6.0 * * @uses _wp_put_post_revision() * * @param int $post_id The ID of the post to save as a revision. * @return mixed Null or 0 if error, new revision ID, if success. */ function wp_save_post_revision( $post_id ) { // We do autosaves manually with wp_create_post_autosave() if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; // WP_POST_REVISIONS = 0, false if ( ! WP_POST_REVISIONS ) return; if ( !$post = get_post( $post_id, ARRAY_A ) ) return; if ( !post_type_supports($post['post_type'], 'revisions') ) return; $return = _wp_put_post_revision( $post ); // WP_POST_REVISIONS = true (default), -1 if ( !is_numeric( WP_POST_REVISIONS ) || WP_POST_REVISIONS  'ASC' ) ); // WP_POST_REVISIONS = (int) (# of autosaves to save) $delete = count($revisions) - WP_POST_REVISIONS; if ( $delete post_name, 'autosave' ) ) continue; wp_delete_post_revision( $revisions[$i]->ID ); } return $return; } 

Würde gerne hören, was Sie Experten zu sagen haben!

Vielen Dank

UPDATE: Es scheint, als ob dies der richtige Weg wäre: remove_action (‘pre_post_update’, ‘wp_save_post_revision’);

Aber ich habe Probleme, dies an einen bestimmten Knopf zu binden. Ich möchte die Revisionen nicht vollständig deaktivieren, und ich möchte nicht, dass sie jedes Mal, wenn eine Taste gedrückt wird, angewendet wird, nur kurz, wenn diese Taste gedrückt wird.

Danke für deinen Beitrag!

Solutions Collecting From Web of "Gibt es eine Möglichkeit, eine Revision eines Beitrags NUR mit einer neuen Schaltfläche in der Meta-Box zu erstellen?"

Dies ist aus Zeitmangel noch keine vollständige Antwort, obwohl ich versuchen werde, später mit einem vollständigeren Beispiel zurückzukehren, aber ich wollte nur ein paar Notizen hinzufügen. Möglicherweise wird bald jemand anderes einspringen.

Um den Ball ins Rollen zu bringen …

Zuerst,

Ja, das ist durchaus möglich, Sie können diese functionalität erstellen und in Ihrem Snippet sehen Sie einige der relevanten Hooks, mit denen Sie arbeiten müssen.

 add_action('_wp_put_post_revision', 'your_function"); 

Gefunden in ../wp-includes/post.php zusammen mit anderen relevanten Haken in Bezug auf Revisionen.

Zweitens,

Um die Schaltfläche ” Revision speichern" neben oder über der Schaltfläche ” Veröffentlichen" hinzuzufügen, würden Sie den folgenden Hook verwenden;

 add_action( 'post_submitbox_misc_actions', 'custom_button' ); function custom_button(){ $html = '
'; $html .= '
'; $html .= ''; $html .= '
'; $html .= '
'; echo $html; }

Das ist ein funktionierendes Beispiel und die HTML-Formatierung ( divs, id's, etc ) dient dazu, eine konsistente Benutzeroberfläche zu erhalten, aber Sie können diese nach Belieben ändern, besonders wenn Sie ein benutzerdefiniertes Look and Feel oder ein spezielles Padding wünschen. Ränder und so weiter.

PS. Versuchen Sie, und versuchen Sie, unabhängig vom Ergebnis, Ihre eigene function zu schreiben, die sich auf _wp_put_post_revision in Verbindung mit dem oben genannten benutzerdefinierten Hook _wp_put_post_revision . Fügen Sie Ihre Ergebnisse in der Zwischenzeit ein.