delete_post
Срабатывает до того, как пост (запись любого типа) будет удалена из базы данных.
Важно! К моменту срабатывания хука комментарии и метаданные записи уже удалены. Используйте хук 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.
Примеры
#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-includes/post.php 3459
do_action( 'delete_post', $postid, $post );
wp-includes/post.php 6444
do_action( 'delete_post', $post_id, $post );
Где используется хук в WordPress
wp-includes/blocks/calendar.php 151
add_action( 'delete_post', 'block_core_calendar_update_has_published_post_on_delete' );
wp-includes/default-filters.php 435
add_action( 'delete_post', '_wp_delete_post_menu_item' );
wp-includes/default-filters.php 438
add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
wp-includes/default-filters.php 529
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 1148
remove_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
wp-includes/nav-menu.php 1160
add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );