do_action( 'before_delete_post', int $postid, WP_Post $post )

Fires before a post is deleted, at the start of wp_delete_post().


Description

Top ↑

See also


Top ↑

Parameters

$postid

(int) Post ID.

$post

(WP_Post) Post object.


Top ↑

More Information

This hook runs:

  • Just before other data associated with the post is deleted – like meta data. After the other data is deleted, the delete_post action executes, the primary post is removed, and then the deleted_post action is executed.
  • When items marked for trash are going through final (forced) deletion (e.g. the trash is disabled and an item is deleted).

This hook does not run:

  • For posts that are being marked as trash (unforced). The wp_trash_post hook is the functional equivalent, executed just before items are marked as trash.
  • For attachments. The delete_attachment hook is the functional equivalent, executed just before posts of type attachment are processed. With attachments, exactly as with other post types, meta data is removed, the delete_post action is run, then the attachment is removed from the database, and finally, the deleted_post action is run.

Top ↑

Source

File: wp-includes/post.php

View on Trac



Top ↑

Changelog

Changelog
Version Description
5.5.0 Added the $post parameter.
3.2.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 2 content
    Contributed by Collins Mbaka

    Let’s suppose you have a plugin and when a certain post_type is deleted you want to perform some action.

    <?php
    add_action( 'before_delete_post', 'wpdocs_my_func' );
    function wpdocs_my_func( $postid ) {
    
        // We check if the global post type isn't ours and just return
        global $post_type;   
    
        if ( 'wpdocs_my_custom_post_type' !== $post_type ) {
            return;
        }
    
        // My custom stuff for deleting my custom post type here
    }
    ?>
    

You must log in before being able to contribute a note or feedback.