为什么即使我还没有保存帖子也会触发SAVE_POST

时间:2011-06-15 作者:JM at Work

我创建了一个元框我注意到save_post 似乎是在我登陆页面时触发的,因此会出现如下错误Undefined index: xxx in /data/www/ae/wp-content/themes/xx/functions.php on line 121

add_action(\'save_post\', function($id) {
    if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE) {
        return;
    }
    if (!isset($_POST) || !is_array($_POST)) {
        return;
    }
    update_post_meta($id, \'xxx\', sprintf(\'%f\', $_POST[\'xxx\']));
    ...
});

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

看见Why does save_post action fire when creating a new post?

当您需要检查$_POST[\'xxx\'], 而不仅仅是检查$_POST 设置(默认情况下,它将始终设置为空数组)。

add_action(\'save_post\', function($id) {
    if ( ( defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE ) || !isset( $_POST[\'xxx\'] ) )
        return;

    update_post_meta( $id, \'xxx\', sprintf( \'%f\', $_POST[\'xxx\'] ) );
    // run further code
});

结束

相关推荐

Metabox在更新或发布时保存,但在保存草稿时不保存

我已经创建了自定义帖子类型,其中也包含我创建的自定义meta\\u框。目前,当我发布或更新帖子时,它们会保存,但当我在草稿模式下进行更改时,它们不会保存。add_action(\'save_post\', \'save_details\'); function save_details(){ if ( defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE ) { return $post_id; }&#