WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Получай пассивный доход от сайта с помощью браузерных PUSH уведомлений

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

Срабатывает прямо до того как запись будет удалена из базы данных.

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

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

add_action( 'delete_post', 'action_function_name_7835', 10, 2 );
function action_function_name_7835( $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_delete_post()
delete_post
wp_delete_attachment()
delete_post
wp-includes/post.php 3177
do_action( 'delete_post', $postid, $post );
wp-includes/post.php 6077
do_action( 'delete_post', $post_id, $post );

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

wp-includes/default-filters.php 410
add_action( 'delete_post', '_wp_delete_post_menu_item' );
wp-includes/default-filters.php 413
add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
wp-includes/default-filters.php 507
add_action( 'delete_post', 'delete_get_calendar_cache' );
wp-includes/ms-default-filters.php 79
add_action( 'delete_post', '_update_posts_count_on_delete' );
wp-includes/ms-default-filters.php 80
add_action( 'delete_post', '_update_blog_date_on_post_delete' );
wp-includes/nav-menu.php 1144
remove_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
wp-includes/nav-menu.php 1156
add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
Комментариев нет
    Войти