it-swarm.com.de

Gibt $ post_id zurück, wenn DOING_AUTOSAVE?

Ich sehe immer wieder das folgende Muster, auf dieser Seite und an anderen Stellen:

add_action( 'save_post', 'wpse14169_save_post' );
function wpse14169_save_post( $post_id )
{
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return $post_id;
    }
    // Other code...
}

Warum sollte ich $post_id zurückgeben? save_post ist eine Aktion, und der Rückgabewert eines Aktionshandlers wird ignoriert . Der WordPress-Kern selbst macht es auch nicht .

Das Codex-Beispiel gibt den $post_id zurück, aber es wäre nicht die erste falsche (oder veraltete) Zeile im Codex.

Vermisse ich etwas? Muss ich $post_id zurückgeben? Gab es eine Zeit, in der dies nötig war?

8
Jan Fabry

Die Aktion 'save_post' wurde in Core 2.0 hinzugefügt und war schon immer eine Aktion. Wenn Sie sich die aktuellen Prozeduren zum automatischen Speichern ansehen, wird die Aktion 'save_post' anscheinend zu keinem Zeitpunkt direkt aufgerufen.

Die kurze Antwort lautet also nein. Es gibt keinen Grund und es gab auch keinen Grund, einen Wert für diese Aktion zurückzugeben. Natürlich tut es überhaupt nicht weh, die Post-ID zurückzugeben.

5
John P Bloch

Da mit dem Rückgabewert nichts gemacht wird, ist die Rückgabe der Post-ID sinnlos und sollte nicht gemacht werden. Es gibt nur Raum für Verwirrung.

Ich habe es gerade ausprobiert, die folgende save_post Aktion funktioniert einwandfrei.

function my_save_post($post_id)
{
    // Stop WP from clearing custom fields on autosave
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
        return;

    // Prevent quick edit from clearing custom fields
    if (defined('DOING_AJAX') && DOING_AJAX)
        return;

    // Sanitize, validate and save ...

}
6
Geert