Restituisci $ post_id quando DOING_AUTOSAVE?


8

Vedo ripetutamente il seguente schema, su questo sito e in altri luoghi:

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

Perché dovrei tornare $post_id? save_postè un'azione e il valore restituito di un gestore azioni viene ignorato . Anche il core di WordPress non lo fa .

L'esempio del Codex restituisce il$post_id , ma non sarebbe la prima riga errata (o obsoleta) nel Codex.

Mi sto perdendo qualcosa? Devo tornare $post_id? C'è stato un momento in cui questo era necessario?


Per riferimento qui è la modifica che ha introdotto la prima versione di questo al Codex . Non riconosco il login, potresti provare a cercare la persona e chiedere (se questo è interessato).
Rarst

Risposte:


5

L' 'save_post'azione è stata aggiunta al core in 2.0 ed è sempre stata un'azione. Osservando le attuali procedure di salvataggio automatico, non sembra richiamare l' 'save_post'azione direttamente in qualsiasi momento.

Quindi la risposta breve è no. Non vi è alcun motivo e non c'è mai stato alcun motivo per restituire alcun valore a questa azione. Certo, non fa affatto male restituire l'id post.


7

Poiché non viene fatto nulla con il valore restituito, la restituzione dell'ID post è inutile e non dovrebbe essere eseguita. Fornisce solo spazio per la confusione.

Appena provato, la seguente save_postazione funziona bene.

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 ...

}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.