私は wp_set_post_lock
を使用して一時的に投稿をロックし、編集できるようにします。
そのロックを更新するために wp_refresh_post_lock
を使うことができます。
投稿がロックされているかどうかを確認するには wp_check_post_lock
を使用します。
...しかし、どうすればポストロックを解除できますか?私の仮定は、wp_remove_post_lock
またはwp_release_post_lock
と呼ばれる関数があることですが、どちらも存在しないようです。
それでは、どうすればポストロックを解除できますか?確かに、タイムアウトするのを待つ必要はありませんよね。
一見すると理にかなっていますが、...
正確にその機能が使用されるのはいつですか?ユーザーが投稿エディターを開くと、そのアクションに簡単にフックしてロックを設定できます。
しかし、いつそれを削除しますか?保存した後?いいえ-ユーザーはまだ編集中なので、ロックがオンになっている必要があります。
ユーザーがタブを閉じた後、またはエディターを閉じた後に削除する必要がありますが、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 );
}
[OK]ので、 '_ edit_lock'というカスタムファイルとして保存されます。このメタを削除すると、ロックが削除されます。
delete_post_meta( $post_id, '_edit_lock')