wp_delete_post() — перемещает в корзину или полностью удаляет пост

Функция полностью удаляет, либо перемещает в корзину пост, страницу или вложение с указанным в параметрах 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, если:

Хуки:

  • В самом начале (сразу после проверки, что пост существует и что не нужно использовать 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> перемещена в корзину.';

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Да, точно)

  • Владимир: и на третьей строке не хватает скобки ) закрывающей if :)

  • Миша: Добрый вечер! Рекомендую получить ID пользователя через функцию get_current_user_id().

  • Дмитрий: Миша, подскажите пожалуйста, я использую такой редирект, но он не срабатывает: add_action( 'template_redirect', funct...

  • Миша: Ну как не определена - это аргумент функции. Или я просто вас не до конца понимаю.