it-swarm.com.de

Wie kann ich einen neuen Beitrag erstellen und wp_die () ausführen, bevor der Beitrag in die Datenbank eingefügt wird?

Info zu wp_die aus dem Codex: WordPress-Ausführung beenden und HTML-Nachricht mit Fehlermeldung anzeigen. Ein Aufruf dieser Funktion ergänzt die Funktion die () PHP. Der Unterschied besteht darin, dass HTML dem Benutzer angezeigt wird. Es wird empfohlen, diese Funktion nur zu verwenden, wenn die Ausführung nicht weiter fortgesetzt werden soll.

Ich habe code:

function myHook( $post_ID, $post )
{
     wp_die('Error', 'Error',  array( 'response' => 500, 'back_link' => true ));
}
add_action( 'save_post', 'myHook', 0, 2 );

Das Problem ist, dass die Fehlerseite angezeigt wird, der Beitrag jedoch weiterhin eingefügt wird. Sollte das Speichern nicht durch diesen Haken unterbrochen werden? Wenn ich die Beschreibung falsch verstanden habe, wie kann ich die Ausführung unterbrechen, damit der Beitrag nicht gespeichert wird?

BEARBEITEN: Ich habe gerade festgestellt, dass save_post nach instert zur Datenbank nicht vorher aufgerufen wird. Gibt es eine Funktion, die vor dem Einfügen aufgerufen wird und in die ich mich einhängen kann?

Danke im Voraus

2
user1666774

Versuchen Sie stattdessen, mit wp_insert_post_data zu filtern. Es ist von wp-includes/post.php, Zeile 2864.

add_filter( 'wp_insert_post_data', 'post_publish_filter_wpse_82356' );
function post_publish_filter_wpse_82356( $data ) {
    // view/manipulate $data
    if ('publish' == $data['post_status']) {
        $msg = '<pre>' . var_export($data, true) . '</pre>';
        wp_die($msg);
    }
    return $data;
}

publish ist der post_status, wenn Sie auf die SchaltflächeVeröffentlichenoderAktualisierenklicken. Die vier Status, die ich gefunden habe, sind:

  • Auto-Draft - selbsterklärend (auch der Status wird auf diesen Wert gesetzt, wenn Sie aufAdd Newklicken.)
  • Entwurf - wenn Sie aufEntwurf speichernklicken
  • erben - wenn Sie aufVorschauklicken
  • Veröffentlichen - Wenn Sie aufVeröffentlichenoderAktualisierenklicken
2
akTed