WordPress-Post-Save/Edit-Post-Hook

Lesezeit: 2 Minuten

Benutzeravatar von setcookie
Keks setzen

Ich suche nach einem Admin-Hook für Beiträge, der ausgelöst wird, nachdem der Beitrag gespeichert wurde. Das Problem: Die save_post enthält nicht die bereits geänderten Daten zum Post-Objekt. Die neuen Änderungen sind nur in der zu finden $_POST Reihe. Aber ich brauche eine Möglichkeit, den Permalink zu einer externen API einmal zu aktualisieren post_name Änderungen. Aber es wird nicht funktionieren, da die $post Objekt ist immer noch das alte vor der Speicheraktion.

Sie sollten in der Lage sein, sich einzuklinken, nachdem der Beitrag mit dem Prioritätsargument aktualisiert wurde (in diesem Beispiel auf 20 gesetzt):

add_action( 'save_post', 'your_function', 20, 1 );
function your_function( $post_id ) {
    // this should be the updated post object 
    $post = get_post( $post_id );
}

Ich denke, die geeignetste Methode ist, die alten Werte aus der Datenbank abzufragen und die Werte damit zu vergleichen $_POST Array-Werte.

Hier ist der Link, der Ihnen helfen soll, Werte aus der Datenbank zu lesen.

http://codex.wordpress.org/wpdb#query_-_Run_Any_Query_on_the_Database

PS: Diesen Vergleich sollten Sie natürlich “bevor” Sie die neuen Werte in der Datenbank speichern.

Benutzeravatar von Gleb Kemarsky
Gleb Kemarski

Seit WordPress 3.0.0 ist die post_updated Haken ist vorhanden. Es hilft zu wissen, was sich in der Post nach dem Update geändert hat. Sie können verwenden das Beispiel im WP Codex als Beispiel.

add_action( 'post_updated', 'check_updated_post_name', 10, 3 );
function check_updated_post_name( $post_ID, $post_after, $post_before ) {
    if ( $post_after->post_name != $post_before->post_name ) {
        // do what you need
    }
}

Und wenn gerade ein Beitrag eingefügt wurde, können Sie ihn verwenden save_post oder save_post_{$post->post_type} Haken. Überprüfen Sie den Wert des dritten Arguments, um sicherzustellen, dass der Beitrag neu ist.

add_action( 'save_post', 'check_new_post_name', 10, 3 );
function check_new_post_name( $post_ID, $post, $update ) {
    if ( ! $update ) {
        // do what you need
    }
}

1434970cookie-checkWordPress-Post-Save/Edit-Post-Hook

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy