我开发了一个插件,可以通过媒体将文件上传到上传文件夹。如果文件不符合x条件,则会处理该文件。该过程将中止,文件将被删除。
以这种方式调用unlink时,删除是有效的
if ($counter === 0) {
printMessage(\'No need to process\');
if (unlink($file)) {
printMessage(\'File removed\');
}
return;
}
在这里
$file
是对
wp_handle_upload
$upload[\'file\']
我的情况是,在验证文件确实已从文件系统中删除后,媒体库中会有一个对它的引用。
谢谢你的评论
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
当您将文件上载到媒体库时,一些数据(主要是元数据,如标题、描述等)存储在数据库中。
因此,如果您使用unlink
, 您不会从DB中删除任何行,因此附件在媒体库中仍然可见。
如果要从ML中删除附件,应该使用WP函数。wp_delete_attachment
可能会派上用场。
您可以这样使用它:
<?php wp_delete_attachment( <ID_OF_YOUR_ATTACHMENT> ); ?>