我一直在尋找防止多個用戶同時打開同一篇文章和進行編輯的方法。例如,我在一個選項卡中打開它并開始編輯,當其他人想在另一個選項卡中打開它時,應該不可能編輯它。當時只有一個人。使用 Wordpress,2 個用戶不能同時編輯同一篇文章。有誰知道 WordPress 是怎么做到的?我不認識自己。
我正在尋找解決方案,這就是為什么我不知道該嘗試什么。
uj5u.com熱心網友回復:
如果您想知道當前是否正在編輯帖子(頁面、產品、任何自定義帖子型別),請使用wp_check_post_lock( $post_id )。如果用戶當前正在編輯帖子,它會回傳用戶的 ID。否則它回傳 false,您可以繼續編輯它。
如果您想將帖子標記為正在編輯,請使用wp_set_post_lock( $post_id )。呼叫它會默默地覆寫任何現有的鎖,所以先檢查一下。在進行編輯時,您應該每兩分鐘或更頻繁地呼叫此函式,因為鎖會在 150 秒后過期。
這都是通過帶有 meta_key'_edit_lock'和 meta_value的 wp_postmeta 條目實作的'timestamp:userid'。時間戳是設定鎖的時間。例如,'1667470754:123'表示用戶 ID 123 在時間 Thu Nov 03 2022 10:19:14Z 鎖定了帖子。但是避免為此直接訪問 wp_postmeta 表。該值可能會被快取。
如果需要,您可以使用check_post_lock_window過濾器來更改鎖定到期時間。
_admin_notice_post_locked ()函式發出有關帖子被鎖定的通知。但是這個功能是為在 WordPress 核心管理頁面中使用而設計的,所以它可能不適合你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535573.html
