У меня проблема с запуском функции для действия "delete_post". Я создаю функциональность, в которой мне пришлось добавить еще одну таблицу в базу данных (я не могу использовать wp_postmeta для этой). Из-за этого я создал пользовательскую таблицу, в которой есть дополнительные данные, связанные с сообщениями. Я бы хотел, чтобы, когда администратор удаляет сообщение из панели администратора, данные для этого сообщения удалялись в моей пользовательской таблице (я не хочу, чтобы избыточные данные оставались там, когда сообщение исчезло)
И я реализовал что-то вроде этого:
add_action('admin_init', 'codex_init');
function codex_init() {
if (current_user_can('delete_posts')) add_action('delete_post', 'delete_something');
}
function delete_something($postid) {
//here im deleting everything from that table with that post id for that post type
}
И это прекрасно работает, если кто-то нажимает, чтобы удалить только один пост. Но когда я хочу удалить сразу несколько сообщений (проверив кнопки в меню администратора WordPress и выбрав опцию удаления — массовое удаление), это не сработает? Я делаю что-то не так, или есть разные действия, когда кто-то хочет удалить несколько сообщений одновременно?
ИЗМЕНИТЬ:
Как указано в комментарии ниже, это действие отлично работает как для массовых, так и для отдельных действий по удалению. Моя проблема была связана с использованием глобальной переменной $post для получения идентификатора отдельных сообщений, когда вместо этого я должен использовать параметр, который предоставляется функции напрямую.