## Функция WP_TRASH_POST() │ Версия WP 2.9.0
Функция WP_TRASH_POST() позволяет переместить запись или страницу в корзину. Если корзина отключена, пост или страница будут навсегда удалены.
### Хуки функции
- pre_trash_post
- wp_trash_post
- trashed_post
### Возврат
Функция возвращает:
- WP_Post (объект поста) при успешном выполнении.
- false или null в случае ошибки.
### Использование
Вызывайте функцию следующим образом:
```php
wp_trash_post( $post_id );
Параметры
$post_id(int) — ID поста.- По умолчанию используется ID глобального
$post, если значениеEMPTY_TRASH_DAYSравно true.
Примеры
Перемещение поста в корзину
Если корзина включена, мы перемещаем пост с ID=15 в корзину. Пост останется в корзине 30 дней, после чего он будет полностью удалён WordPress.
$post_id = 15;
wp_trash_post( $post_id );
Если функция корзины отключена, будет вызвана функция wp_delete_post() для удаления поста.
Заметки
- Для удаления поста используйте функцию wp_delete_post().
Изменения
- Начало использования: с версии 2.9.0.
Код функции
Функция wp_trash_post() находится в файле wp-includes/post.php. Вот её код:
function wp_trash_post( $post_id = 0 ) {
if ( ! EMPTY_TRASH_DAYS ) {
return wp_delete_post( $post_id, true );
}
$post = get_post( $post_id );
if ( ! $post ) {
return $post;
}
if ( 'trash' === $post->post_status ) {
return false;
}
$previous_status = $post->post_status;
/**
* Фильтр для проверки, нужно ли перемещать пост в корзину.
*
* @param bool|null $trash Нужно ли продолжать перемещение в корзину.
* @param WP_Post $post Объект поста.
* @param string $previous_status Статус поста, который будет перемещён.
*/
$check = apply_filters( 'pre_trash_post', null, $post, $previous_status );
if ( null !== $check ) {
return $check;
}
/**
* Действие перед перемещением поста в корзину.
*
* @param int $post_id ID поста.
* @param string $previous_status Статус поста перед перемещением.
*/
do_action( 'wp_trash_post', $post_id, $previous_status );
add_post_meta( $post_id, '_wp_trash_meta_status', $previous_status );
add_post_meta( $post_id, '_wp_trash_meta_time', time() );
$post_updated = wp_update_post(
array(
'ID' => $post_id,
'post_status' => 'trash',
)
);
if ( ! $post_updated ) {
return false;
}
wp_trash_post_comments( $post_id );
/**
* Действие после перемещения поста в корзину.
*
* @param int $post_id ID поста.
* @param string $previous_status Статус поста перед перемещением в корзину.
*/
do_action( 'trashed_post', $post_id, $previous_status );
return $post;
}
Связанные функции
get_default_post_to_edit()wp_delete_post()wp_insert_post()wp_publish_post()wp_update_post()