如何以编程方式解锁帖子?

时间:2018-12-01 作者:Pikamander2

我可以使用wp_set_post_lock 临时锁定帖子,以便只有我可以编辑它。

我可以使用wp_refresh_post_lock 刷新该锁。

我可以使用wp_check_post_lock 检查立柱是否锁定。

。。。但是我怎样才能卸下后锁呢?我假设有一个函数wp_remove_post_lockwp_release_post_lock, 但这两者似乎都不存在。

那么我怎样才能卸下后锁呢?我当然不必等它超时,对吧?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

乍一看是有道理的,但是。。。

该函数将在何时使用?当用户打开post editor时,您可以轻松地钩住该操作并设置锁。

但你什么时候会把它移除?保存后?否-用户仍在编辑,因此应打开锁定。

应该在用户关闭选项卡或编辑器后删除它-但您不能从PHP钩住这些操作,因为PHP不会在它们发生之前得到通知。。。

所以很可能没有移除锁的功能,因为它在正常使用中没有任何用处。。。

当然,您仍然可以轻松地移除此类锁。。。

让我们看看这个锁到底是什么,以及WP是如何设置的:

function wp_set_post_lock( $post_id ) {
    if ( ! $post = get_post( $post_id ) ) {
        return false;
    }
 
    if ( 0 == ( $user_id = get_current_user_id() ) ) {
        return false;
    }
 
    $now = time();
    $lock = "$now:$user_id";
 
    update_post_meta( $post->ID, \'_edit_lock\', $lock );
 
    return array( $now, $user_id );
}
好的,所以它存储为名为“\\u edit\\u lock”的自定义字段,所以。。。只要删除此元,锁就会被删除。

delete_post_meta( $post_id, \'_edit_lock\')