[AUTOMATIQUE] Cet article a plus de 5 ans.
Il se peut donc que les informations qu'il fournit ne soient plus totalement exactes.
Il se peut donc que les informations qu'il fournit ne soient plus totalement exactes.
Ce snippet peut s’avérer bien utile si vous ne souhaitez pas maintenir votre bibliothèque de médias. Il permet tout simplement de supprimer un fichier attaché en image de couverture lorsque le post auquel il est lié est supprimer.
L’image à la une est supprimé dès que le post est supprimé de la corbeille, donc une mise à la corbeille du post ne le supprimera pas.
Attention cependant, si votre image est utilisée sur un autre poste, elle sera évidemment supprimée du post en question… à utiliser avec des pincettes donc !
function delete_attached_before_delete_post($id){ $subposts = get_children(array( 'post_parent' => $id, 'post_type' => 'any', 'numberposts' => -1, 'post_status' => 'any' )); if (is_array($subposts) && count($subposts) > 0){ $uploadpath = wp_upload_dir(); foreach($subposts as $subpost){ $_wp_attached_file = get_post_meta($subpost->ID, '_wp_attached_file', true); $original = basename($_wp_attached_file); $pos = strpos(strrev($original), '.'); if (strpos($original, '.') !== false){ $ext = explode('.', strrev($original)); $ext = strrev($ext[0]); } else { $ext = explode('-', strrev($original)); $ext = strrev($ext[0]); } $pattern = $uploadpath['basedir'].'/'.dirname($_wp_attached_file).'/'.basename($original, '.'.$ext).'-[0-9]*x[0-9]*.'.$ext; $original= $uploadpath['basedir'].'/'.dirname($_wp_attached_file).'/'.basename($original, '.'.$ext).'.'.$ext; if (getimagesize($original)){ $thumbs = glob($pattern); if (is_array($thumbs) && count($thumbs) > 0){ foreach($thumbs as $thumb) unlink($thumb); } } wp_delete_attachment( $subpost->ID, true ); } } } add_action('before_delete_post', 'delete_attached_before_delete_post');
#Magnifique
Ce script c’est de la bombe il me fait plaisir
Good Work