wordpress的桌面应用端
wordpress提供了桌面应用,支持Windows、Mac以及Linux操作系统。这些应用程序允许用户管理他们的网站、撰写和发布内容,以及执行其他wordpr...
最近,一些小伙伴们询问我在WordPress中删除文章时,文章中上传到媒体库的附件(如图片)不会自动删除,导致网站空间被占用(尤其是对于使用虚拟主机的用户而言,空间有限)。
为了解决这个问题,下面我将介绍几行简单的代码,帮助实现在删除文章时同时自动删除缩略图和附件,省去了手动在媒体库中寻找和删除的操作,提高效率和准确性。
您只需将以下代码复制到您的主题的functions.php文件中即可开始使用,这个不必wordpress插件来解决。
然而,请注意,在删除文章之前执行代码,使用before_delete_post
动作而不是delete_post
动作,这是因为使用delete_post
动作可能导致在删除文章后,由于媒体附件与文章的关联已经取消,无法正确删除附件的情况。
重新编辑完成后,
/** * WordPress删除文章同时同时删除缩略图及图片附件的方法 */ 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');
将上述代码添加到主题的functions.php文件中即可。这段代码将确保在删除文章时同时删除相关的特色图片和附件,帮助您更有效地管理网站空间。
注意:在对主题的functions文件进行修改前,请务必备份现有文件,以防止意外错误。
你可能喜欢
wordpress提供了桌面应用,支持Windows、Mac以及Linux操作系统。这些应用程序允许用户管理他们的网站、撰写和发布内容,以及执行其他wordpr...
最近,我们被问及LiteSpeed Cache与WP Rocket哪个更好。 现在,如果您不知道,LiteSpeed Cache和WP Rocket是两个最受欢...
默认情况下,wordpress会在您网站顶部向所有登录用户(如订阅者、作者、编辑者和任何其他用户角色)显示一个管理栏。 此管理栏可以将他们引导至wordpres...