0°

wordpress删除文章时同时删除缩略图与附件

953 个字符,1 张图片,大约需要 2 分钟阅读

长期以来wordpress就有这毛病,删除文章时无法同时删除缩略图或附件

要不就手动删,要不就不管他,很闹心

现在有个方法

将下面几行代码加入functions.php即可

简单而且效率

/* 删除文章时删除图片附件 */
function delete_post_and_attachments($post_ID) {
	global $wpdb;
	//删除特色图片
	$thumbnails = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" );  
	foreach ( $thumbnails as $thumbnail ) {
    	wp_delete_attachment( $thumbnail->meta_value, true );  
	}
	//删除图片附件
	$attachments = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = 'attachment'" );
	foreach ( $attachments as $attachment ) {
    	wp_delete_attachment( $attachment->ID, true );  
	}  
	$wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); 
}
add_action('before_delete_post', 'delete_post_and_attachments');

值得注意的一点是,下面的要使用before_delete_post而不是delete_post

如果使用delete_post将会先删除文章

从而导致无法根据文章来找到相应附件的问题

wordpress删除文章时同时删除缩略图与附件

除非注明,否则均为喵喵喵博客原创文章,转载请以链接形式标明本文地址

本文链接:https://www.miaomiaomiao.org/9582.html

0 条回复 A 作者 M 管理员
    当上帝赐给你荒野时,就意味着,他要你成为高飞的鹰
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论