执行自动保存时返回$post_id吗?

时间:2011-04-07 作者:Jan Fabry

我反复看到以下模式,on this site 在其他地方:

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 是一种行为the return value of an action handler is ignored. WordPress核心本身doesn\'t do it either.

Codex示例does return the $post_id, 但这不会是法典中第一条不正确(或过时)的行。

我错过了什么?我需要回去吗$post_id? 有没有必要这样做?

2 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

这个\'save_post\' 操作是added to core in 2.0, 而且一直都是一种行为。查看当前的autosave过程,它似乎没有调用\'save_post\' 随时直接采取行动。

所以简单的回答是,没有。没有任何理由,也从来没有任何理由,在这个动作上返回任何值。当然,返回帖子id一点也不疼。

SO网友:Geert

由于没有对返回值执行任何操作,因此返回post 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 ...

}

结束

相关推荐

Custom Post Row Actions

我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $