Функция полностью удаляет, либо перемещает в корзину пост, страницу или вложение с указанным в параметрах ID. Кроме того, из базы удаляются данные произвольных полей поста, дочерние посты (если имеются) и комментарии. Ну и редакции разумеется.
В случае успеха возвращает объект поста (до удаления), в случае неудачи — false
.
wp_delete_post( $postid = 0, $force_delete = false ) |
- $postid
- (целое число) Собственно ID поста, который хотим удалить (параметр обязателен, текущий пост из цикла функция удалять не станет).
- $force_delete
- (логическое) Параметр появился в версии 2.9, может принимать следующие значения:
-
true
— удалить пост полностью, минуя корзину, -
false
— переместить пост в корзину (в этом случае функция преобразуется в wp_trash_post(), но только для типовpost
иpage
).
-
Пост также будет безвозвратно удалён вне зависимости от значения параметра $force_delete
, если:
- на момент удаления он уже и так находился в корзине,
-
тип поста — не
post
(запись) и неpage
(страница), - или же корзина отключена;
Хуки:
- В самом начале (сразу после проверки, что пост существует и что не нужно использовать wp_trash_post() или для вложений
wp_delete_attachment()
), функция запускаетbefore_delete_post
с одним параметром$postid
. - Затем, после удаления комментариев, произвольных полей, редакций и непосредственно перед удалением из базы строки самого поста —
delete_post
. - Если удаление из базы прошло успешно, то сразу же после него —
deleted_post
. - И в самом конце, после очистки кэша и перед возвращением объекта поста —
after_delete_post
(параметр всех хуков одинаковый).
Пример. Удалим стандартную запись «Привет, мир!»
То есть мы перемещаем в корзину пост с ID = 1:
$udalennyj = wp_delete_post( 1 ); echo 'Запись <b>' . $udalennyj->post_title . '</b> перемещена в корзину.'; |
Источник: misha.blog