У меня есть настраиваемый тип сообщения, который должен иметь свое изображение. Его характерное изображение также отображается в медиатеке, где пользователь может безвозвратно удалить файл изображения/вложения. Но я хочу запретить пользователю удалять изображение функции моего пользовательского типа сообщения. Поэтому я использую следующий хук, чтобы перехватить запрос ajax, проверить, удаляет ли пользователь изображение моего пользовательского типа сообщения, и остановить процесс, используя wp_die()
.
add_filter('pre_delete_attachment', 'check_my_custom_post_type', 0, 2);
function check_my_custom_post_type($delete, $post) {
if (Yes it is image of my custom type) {
wp_die('My message', 'My title', ['response' => 400]);
}
}
Он отлично работает на стороне сервера. Изображение моего пользовательского типа сообщения не может быть удалено. Но медиа-библиотека на стороне клиента по-прежнему удаляет изображение из своих представлений, даже если изображение на стороне сервера не было удалено, и возникло исключение 400.
Как запретить библиотеке мультимедиа удалять изображения из своих представлений на стороне клиента, если изображение не было удалено на стороне сервера?