it-swarm-id.com

Bagaimana cara membuka kiriman secara terprogram?

Saya dapat menggunakan wp_set_post_lock untuk sementara mengunci kunci sehingga hanya saya yang bisa mengeditnya.

Saya dapat menggunakan wp_refresh_post_lock untuk menyegarkan kunci itu.

Saya dapat menggunakan wp_check_post_lock untuk memeriksa apakah sebuah kiriman terkunci.

... tapi bagaimana cara menghapus kunci kiriman? Asumsi saya adalah ada fungsi yang disebut wp_remove_post_lock atau wp_release_post_lock, tetapi keduanya tidak ada.

Jadi bagaimana saya bisa menghapus kunci kiriman? Tentunya saya tidak perlu menunggu waktu habis, kan?

2
Pikamander2

Sepintas masuk akal, tapi ...

Kapan tepatnya fungsi itu digunakan? Saat pengguna membuka editor pos, Anda dapat dengan mudah menghubungkan ke tindakan itu dan mengatur kunci.

Tetapi kapan Anda akan menghapusnya? Setelah menabung? Tidak - pengguna masih mengedit, jadi kunci harus diaktifkan.

Itu harus dihapus setelah pengguna telah menutup tab atau menutup editor - tetapi Anda tidak dapat mengaitkan ke tindakan ini dari PHP, karena ada PHP tidak mendapat pemberitahuan tentang mereka sebelum terjadi ...

Jadi kemungkinan besar tidak ada fungsi untuk menghapus kunci, karena tidak ada gunanya dalam penggunaan normal ...

Tentu saja Anda masih dapat dengan mudah menghapus kunci tersebut ...

Mari kita lihat apa sebenarnya kunci itu dan bagaimana WP mengaturnya:

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 );
}

OK, jadi ini disimpan sebagai arsip khusus yang disebut '_edit_lock', jadi ... Hapus saja meta ini dan kunci akan dihapus.

delete_post_meta( $post_id, '_edit_lock')
2