DOING_AUTOSAVEのときに$ post_idを返しますか?


8

このサイトや他の場所で、次のパターンが繰り返し見られます。

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

なぜ戻る必要があり$post_idますか?save_postはアクションであり、アクションハンドラの戻り値は無視されます。WordPressコア自体もそれを行いません

コーデックスの例はを返しますが$post_id、コーデックスの最初の不正な(または古い)行ではありません。

何か不足していますか?戻る必要があり$post_idますか?これが必要な時期はありましたか?


参考までに、この初期バージョンをCodexに導入した編集です。ログインを認識できません。人を調べて質問してみてください(興味がある場合)。
Rarst

回答:


5

この'save_post'アクションは2.0コア追加され、常にアクションでした。現在の自動保存手順を見ると、'save_post'いつでもアクションを直接呼び出しているようには見えません。

つまり、簡単な答えは「いいえ」です。このアクションで値を返す理由はなく、理由もありません。もちろん、投稿IDを返すことはまったく問題ありません。


7

戻り値では何も行われていないため、投稿IDを返すことは無意味であり、行うべきではありません。混乱の余地があります。

試してみただけで、次のsave_postアクションは正常に機能します。

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

}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.