$ Post_id zurückgeben, wenn DOING_AUTOSAVE?


8

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

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 zurückkehren $post_id? save_postist eine Aktion, und der Rückgabewert eines Aktionshandlers wird ignoriert . Der WordPress-Kern selbst macht das auch nicht .

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

Vermisse ich etwas Muss ich zurückkehren $post_id? Gab es eine Zeit, in der dies gebraucht wurde?


Als Referenz dient hier die Bearbeitung, die die frühe Version davon in Codex eingeführt hat . Ich erkenne das Login nicht, Sie könnten versuchen, eine Person aufzusuchen und zu fragen (wenn das interessiert ist).
Rarst

Antworten:


5

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

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


7

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

Einfach ausprobiert, die folgende save_postAktion 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 ...

}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.