¿Devolver $ post_id cuando DOING_AUTOSAVE?

8

Veo el siguiente patrón una y otra vez, en este sitio y en otros lugares:

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

¿Por qué debería volver $post_id? save_postes una acción y se ignora el valor de retorno de un controlador de acción . El núcleo de WordPress en sí mismo tampoco lo hace .

El ejemplo del Codex devuelve el$post_id , pero no sería la primera línea incorrecta (u obsoleta) en el Codex.

¿Me estoy perdiendo de algo? ¿Necesito regresar $post_id? ¿Hubo un momento en que esto fue necesario?

Jan Fabry
fuente
Como referencia, aquí está la edición que introdujo la versión anterior de esto a Codex . No reconozco el inicio de sesión, puede intentar buscar una persona y preguntar (si está interesado).
Rarst

Respuestas:

5

La 'save_post'acción se agregó al núcleo en 2.0 , y siempre ha sido una acción. Mirando a través de los procedimientos actuales de autoguardado, no parece llamar la 'save_post'acción directamente en ningún momento.

Entonces la respuesta corta es no. No hay ninguna razón, y nunca ha habido ninguna, para devolver ningún valor en esta acción. Por supuesto, no está de más devolver el ID de la publicación.

John P Bloch
fuente
7

Como no se está haciendo nada con el valor de retorno, devolver el ID de la publicación no tiene sentido y no debe hacerse. Solo proporciona espacio para la confusión.

Solo lo probé, la siguiente save_postacción funciona 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
fuente