私は次のパターンを何度も繰り返して見ます、 このサイトで そして他の場所で:
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
を返す必要がありますか?これが必要な時はありましたか?
'save_post'
アクションは 2.0でcoreに追加された であり、常にアクションでした。現在の自動保存手順を見ると、いつでも直接'save_post'
アクションを呼び出すようには見えません。
短い答えはノーです。このアクションで値を返す理由はありません。また、これまでに発生したこともありません。もちろん、投稿IDを返しても問題ありません。
戻り値では何もしていないので、投稿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 ...
}