更新帖子后如何更新帖子作者

问题描述 投票:0回答:1

我想在更新帖子后通过获取当前用户ID来更新post_author,但是当我使用这个函数时,wordpress通过复制当前帖子来创建新的具有正确作者的帖子。

function change_author () {
    if ( ! wp_is_post_revision( $post_id ) ){

        $post= array(
            'ID'            => $post_id,
            'post_author'   => get_current_user_id(),
        );

        wp_update_post( $post );


    }

}
add_action('save_post', 'change_author');
wordpress
1个回答
1
投票

我会使用 wp_insert_post_data 钩子。 而不是 save_post. 与其在保存后再更新帖子,不如在数据被插入数据库之前就改变数据,作为保存帖子操作的一部分。下面是我要做的。

function change_author ( $data ) {
    if ( ! wp_is_post_revision( $data['ID'] ) ){
        $data['post_author'] = get_current_user_id();
    }

    return $data;
}
add_filter( 'wp_insert_post_data', 'change_author', 10, 1 );
© www.soinside.com 2019 - 2024. All rights reserved.