Intereting Posts
Как добавить боковую панель к теме Isola? Почему apply_filters возвращают непустую строку, когда возвращаемое значение пусто? Как изменить цвет фона только на одной боковой панели? Почему switch_to_blog перестает работать? Как перевести форму контакта 7 с помощью qTranslate? Предварительная таксономия Pre_get_post в сочетании с настраиваемыми полями? Создание продукта woocommerce с использованием WordPress REST API Можете ли вы использовать систему профилей buddypress без установки всего приладки? Создание настраиваемого шаблона для пользовательских тегов типа тегов Устранена проблема с заданной памятью Шрифт WordPress для отображения только избранных изображений Как удалить окно поиска? Как взаимодействовать с другой установкой wordpress в той же базе данных? Как добавить пользовательский размер для миниатюр для WP – Галерея Как получить идентификатор таксономии на другой странице таксономии

Как подключить функцию только тогда, когда мне нужно постоянно удалять сообщение?

Мне нужно подключить функцию только тогда, когда я постоянно удаляю сообщение из базы данных, я пробовал перехват 'before_delete_post', однако он называется как когда он выгружается и навсегда удаляется.

Функция wp_delete_post () вызывает wp_trash_post () и должна прекратить обработку, но похоже, что wp_delete_post () вызывается снова после удаления сообщения.

Я видел этот вопрос: WordPress Delete hook с функцией wp_delete_post? , Моя потребность – это именно то, что было против.

before_delete_post не вызывается, когда сообщение только выгружается.

В то время как wp_delete_post() может wp_delete_post() сообщения (если сообщение не оборвано и его не удаляют принудительно): он делает это путем вызова wp_trash_post() и выхода из функции до запуска действия before_delete_post .

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

 add_action('before_delete_post', 'my_deleted_post'); function my_deleted_post($post_id){ wp_die(var_dump($post_id)); }; 

Функция wp_delete_post() может быть найдена здесь (WP 3.3.1)

Проблема заключалась в плагине «Sitewide tags», который не соответствовал естественному потоку WP. Функция, называемая sitewide_tags_post_delete() , подключена к 'trash_post', и она вызывает wp_delete_post() чтобы удалить сообщение в основном блоге.

Следуя подходу Стивена, я сделал это:

 add_action('before_delete_post', 'my_deleted_post'); function my_deleted_post($post_id){ global $blog_id; if($blog_id == <main_blog_id>){ // usually is 1 return false; } //do whatever you need :) };