Retornar $ post_id quando DOING_AUTOSAVE?

8

Vejo o seguinte padrão repetidamente neste site e em outros 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 que eu deveria voltar $post_id? save_posté uma ação e o valor de retorno de um manipulador de ações é ignorado . O núcleo do WordPress em si também não .

O exemplo do Codex retorna a$post_id , mas não seria a primeira linha incorreta (ou desatualizada) no Codex.

Estou esquecendo de algo? Preciso voltar $post_id? Houve um momento em que isso era necessário?

Jan Fabry
fonte
Para referência, aqui está a edição que introduziu a versão anterior disso no Codex . Não reconheço o login, você pode tentar procurar uma pessoa e perguntar (se estiver interessado).
Rarst

Respostas:

5

A 'save_post'ação foi adicionada ao núcleo no 2.0 e sempre foi uma ação. Examinando os procedimentos atuais de salvamento automático, ele não parece chamar a 'save_post'ação diretamente a qualquer momento.

Portanto, a resposta curta é não. Não há razão e nunca houve razão para retornar qualquer valor a essa ação. Obviamente, não faz mal retornar o ID da postagem.

John P Bloch
fonte
7

Como nada está sendo feito com o valor de retorno, retornar o ID da postagem não faz sentido e não deve ser feito. Ele apenas fornece espaço para confusão.

Apenas tentei, a seguinte save_postação funciona bem.

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
fonte