delete_post
Срабатывает до того, как пост (запись любого типа) будет удалена из базы данных.
Важно! К моменту срабатывания хука комментарии и метаданные записи уже удалены. Используйте хук before_delete_post, если вам нужны эти данные при удалении поста.
Использование
add_action( 'delete_post', 'wp_kama_delete_post_action', 10, 2 ); /** * Function for `delete_post` action-hook. * * @param int $post_id Post ID. * @param WP_Post $post Post object. * * @return void */ function wp_kama_delete_post_action( $post_id, $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. |
Где вызывается хук
delete_post
wp-includes/post.php 3833
do_action( 'delete_post', $post_id, $post );
wp-includes/post.php 6678
do_action( 'delete_post', $post_id, $post );
Где используется хук в WordPress
wp-includes/blocks/calendar.php 187
add_action( 'delete_post', 'block_core_calendar_update_has_published_post_on_delete' );
wp-includes/default-filters.php 457
add_action( 'delete_post', '_wp_delete_post_menu_item' );
wp-includes/default-filters.php 460
add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
wp-includes/default-filters.php 559
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 1194
remove_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
wp-includes/nav-menu.php 1206
add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );