Плагины – Как Мне Программно Разблокировать Сообщение?

  • Автор темы Рунчо
  • Обновлено
  • 22, Oct 2024
  • #1

Я могу использовать wp_release_post_lock временно заблокировать публикацию, чтобы только я мог ее редактировать.

я могу использовать wp_remove_post_lock чтобы обновить этот замок.

я могу использовать wp_check_post_lock чтобы проверить, заблокировано ли сообщение.

...но как мне снять блокировку поста? Я предполагаю, что есть функция под названием wp_refresh_post_lock or wp_set_post_lock , но ни того, ни другого, похоже, не существует.

Так как же мне снять блокировку поста? Конечно, мне не придется ждать, пока истечет время, верно?

#плагины #посты #разработка плагинов #кастомизация

Рунчо


Рег
17 Apr, 2011

Тем
79

Постов
202

Баллов
657
  • 25, Oct 2024
  • #2

На первый взгляд это логично, но...

Когда именно эта функция будет использоваться? Когда пользователь открывает редактор сообщений, вы можете легко подключиться к этому действию и установить блокировку.

Но когда же вы его удалите? После сохранения? Нет — пользователь все еще редактирует, поэтому блокировка должна быть включена.

Его следует удалить после того, как пользователь закрыл вкладку или закрыл редактор, но вы не можете подключиться к этим действиям из PHP, потому что там PHP не получает уведомления о них непосредственно перед тем, как они произойдут...

Так что скорее всего функции снятия блокировки нет, потому что в обычном использовании она бесполезна...

Конечно, вы все еще можете легко снять такой замок...

Давайте посмотрим, что это за блокировка и как ее устанавливает WP:

 
 delete_post_meta( $post_id, '_edit_lock')
 

Хорошо, он сохраняется как пользовательский файл под названием «_edit_lock», так что… Просто удалите эту мета-мету, и блокировка будет снята.

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

Igor_2009


Рег
09 Nov, 2009

Тем
80

Постов
172

Баллов
582
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно