Renvoie $ post_id lorsque DOING_AUTOSAVE?

8

Je vois le schéma suivant encore et encore, sur ce site et ailleurs:

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

Pourquoi devrais-je revenir $post_id? save_postest une action et la valeur de retour d'un gestionnaire d'actions est ignorée . Le noyau WordPress lui - même ne le fait pas non plus .

L'exemple du Codex renvoie le$post_id , mais ce ne serait pas la première ligne incorrecte (ou obsolète) du Codex.

Suis-je en train de manquer quelque chose? Dois-je revenir $post_id? Y a-t-il eu un moment où cela était nécessaire?

Jan Fabry
la source
Pour référence, voici une modification qui a introduit la première version de ceci au Codex . Je ne reconnais pas la connexion, vous pouvez essayer de rechercher une personne et demander (si cela vous intéresse).
Rarst

Réponses:

5

L' 'save_post'action a été ajoutée au noyau en 2.0 et a toujours été une action. En regardant à travers les procédures d'enregistrement automatique actuelles, il ne semble pas appeler l' 'save_post'action directement à tout moment.

Donc, la réponse courte est non. Il n'y a aucune raison, et il n'y en a jamais eu, de retourner une valeur à cette action. Bien sûr, cela ne fait aucun mal de renvoyer l'identifiant du message.

John P Bloch
la source
7

Étant donné que rien n'est fait avec la valeur de retour, le retour de l'ID de message est inutile et ne doit pas être fait. Cela ne laisse place qu'à la confusion.

Je viens de l'essayer, l' save_postaction suivante fonctionne bien.

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

}
Geert
la source