Title: pre_trash_post
Published: November 20, 2017
Last modified: August 20, 2026

---

# apply_filters( ‘pre_trash_post’, bool|null $trash, WP_Post $post, string $previous_status )

## In this article

 * [Parameters](https://developer.wordpress.org/reference/hooks/pre_trash_post/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/hooks/pre_trash_post/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/hooks/pre_trash_post/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/hooks/pre_trash_post/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/hooks/pre_trash_post/?output_format=md#wp--skip-link--target)

Filters whether a post trashing should take place.

## 󠀁[Parameters](https://developer.wordpress.org/reference/hooks/pre_trash_post/?output_format=md#parameters)󠁿

 `$trash`bool|null

Whether to go forward with trashing.

`$post`[WP_Post](https://developer.wordpress.org/reference/classes/wp_post/)

Post object.

`$previous_status`string

The status of the post about to be trashed.

## 󠀁[Source](https://developer.wordpress.org/reference/hooks/pre_trash_post/?output_format=md#source)󠁿

    ```php
    $check = apply_filters( 'pre_trash_post', null, $post, $previous_status );
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/post.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/post.php#L4111)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/post.php#L4111-L4111)

## 󠀁[Related](https://developer.wordpress.org/reference/hooks/pre_trash_post/?output_format=md#related)󠁿

| Used by | Description | 
| [WP_Customize_Manager::trash_changeset_post()](https://developer.wordpress.org/reference/classes/wp_customize_manager/trash_changeset_post/)`wp-includes/class-wp-customize-manager.php` |

Trashes or deletes a changeset post.

  | 
| [wp_trash_post()](https://developer.wordpress.org/reference/functions/wp_trash_post/)`wp-includes/post.php` |

Moves a post or page to the Trash

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/hooks/pre_trash_post/?output_format=md#changelog)󠁿

| Version | Description | 
| [6.3.0](https://developer.wordpress.org/reference/since/6.3.0/) | Added the `$previous_status` parameter. | 
| [4.9.0](https://developer.wordpress.org/reference/since/4.9.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fhooks%2Fpre_trash_post%2F)
before being able to contribute a note or feedback.