post_types_to_delete_with_user
Позволяет изменить список типов записей, которые нужно удалить при удалении пользователя. Речь идет только о записях созданных пользователем.
По умолчанию в список на удаление попадают типы записей, у которых при регистрации включен параметр delete_with_user
. См. register_post_type().
Использование
add_filter( 'post_types_to_delete_with_user', 'wp_kama_post_types_to_delete_with_user_filter', 10, 2 ); /** * Function for `post_types_to_delete_with_user` filter-hook. * * @param string[] $post_types_to_delete Array of post types to delete. * @param int $id User ID. * * @return string[] */ function wp_kama_post_types_to_delete_with_user_filter( $post_types_to_delete, $id ){ // filter... return $post_types_to_delete; }
- $post_types_to_delete(строка[])
- Массив с именами типов записей.
- $id(число)
- ID удаляемого пользователя.
Примеры
#1 Добавим тип записи product
в удаление, при удалении пользователя
Пусть в зарегистрированном типе записи product
параметр delete_with_user
равен false, т.е. указано, что не нужно удалять записи пользователя при удалении пользователя. Изменим это поведение через хук, так чтобы записи пользователя типа product
удалялись вместе с пользователем.
add_filter( 'post_types_to_delete_with_user', 'add_post_type_product_to_delete_with_user', 10, 2 ); function add_post_type_product_to_delete_with_user( $post_types_to_delete, $id ){ $post_types_to_delete[] = 'product'; return $post_types_to_delete; }
Аналогичного результата можно добиться и на хуке register_post_type_args:
add_filter( 'register_post_type_args', 'register_post_type_product_args', 10, 2 ); function change_rest_base_posts( $args, $post_type ) { if ( 'product' === $post_type ) { $args['delete_with_user'] = true; } return $args; }
Список изменений
С версии 3.4.0 | Введена. |
Где вызывается хук
wp-admin/includes/user.php 400
$post_types_to_delete = apply_filters( 'post_types_to_delete_with_user', $post_types_to_delete, $id );