Lorsque je supprime un utilisateur, WordPress peut simplement supprimer le message ou la page de cet utilisateur, pas son message personnalisé ni ses pièces jointes.
Une idée pour un crochet spécial?
add_action( 'delete_user', 'my_delete_user');
function my_delete_user($user_id) {
$user = get_user_by('id', $user_id);
$the_query = new WP_Query( $args );
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
wp_delete_post( $post->ID, false );
// HOW TO DELETE ATTACHMENTS ?
}
}
}
Le hook que vous choisissez est approprié, et voici comment l'utiliser pour supprimer toutes les publications de tous types (publications, pages, liens, pièces jointes, etc.) de l'utilisateur supprimé:
add_action('delete_user', 'my_delete_user');
function my_delete_user($user_id) {
$args = array (
'numberposts' => -1,
'post_type' => 'any',
'author' => $user_id
);
// get all posts by this user: posts, pages, attachments, etc..
$user_posts = get_posts($args);
if (empty($user_posts)) return;
// delete all the user posts
foreach ($user_posts as $user_post) {
wp_delete_post($user_post->ID, true);
}
}
Si vous souhaitez uniquement supprimer les pièces jointes des utilisateurs, remplacez les arguments post_type
de any
par attachment
et utilisez wp_delete_attachment($attachment_id)
au lieu de wp_delete_post()
.