delete_postхук-событиеWP 1.2.0

Срабатывает до того, как пост (запись любого типа) будет удалена из базы данных.

Важно! К моменту срабатывания хука комментарии и метаданные записи уже удалены. Используйте хук before_delete_post, если вам нужны эти данные при удалении поста.

Использование

add_action( 'delete_post', 'wp_kama_delete_post_action', 10, 2 );

/**
 * Function for `delete_post` action-hook.
 * 
 * @param int     $postid Post ID.
 * @param WP_Post $post   Post object.
 *
 * @return void
 */
function wp_kama_delete_post_action( $postid, $post ){

	// action...
}
$postid(число)
ID записи, которая удаляется.
$post(WP_Post)
Объект записи WP_Post.

Примеры

0

#1 Синхронизация (удаление) дополнительных данных поста

Предположим, у нас есть плагин, который хранит какие-то данные записи (поста) в отдельной таблице базы данных под названием codex_postmeta. Нам нужно удалять эти данные при удалении записи.

add_action( 'admin_init', 'wpdocs_codex_init' );

function wpdocs_codex_init() {
	add_action( 'delete_post', 'wpdocs_codex_sync', 10 );
}

function wpdocs_codex_sync( $pid ) {
	global $wpdb;

	$sql = $wpdb->prepare( 'DELETE FROM codex_postmeta WHERE post_id = %d', $pid );

	$wpdb->query( $sql );
}

Список изменений

С версии 1.2.0 Введена.
С версии 5.5.0 Added the $post parameter.

Где вызывается хук

wp_delete_post()
delete_post
wp_delete_attachment()
delete_post
wp-includes/post.php 3564
do_action( 'delete_post', $postid, $post );
wp-includes/post.php 6393
do_action( 'delete_post', $post_id, $post );

Где используется хук в WordPress

wp-includes/blocks/calendar.php 170
add_action( 'delete_post', 'block_core_calendar_update_has_published_post_on_delete' );
wp-includes/default-filters.php 439
add_action( 'delete_post', '_wp_delete_post_menu_item' );
wp-includes/default-filters.php 442
add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
wp-includes/default-filters.php 538
add_action( 'delete_post', 'delete_get_calendar_cache' );
wp-includes/ms-default-filters.php 79
add_action( 'delete_post', '_update_blog_date_on_post_delete' );
wp-includes/nav-menu.php 1176
remove_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
wp-includes/nav-menu.php 1188
add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );