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 );