Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果用户已被删除,请同时删除该用户';s文件_Php_Wordpress - Fatal编程技术网

Php 如果用户已被删除,请同时删除该用户';s文件

Php 如果用户已被删除,请同时删除该用户';s文件,php,wordpress,Php,Wordpress,我想知道在用户被删除后如何删除他/她上传的文件 每当我删除一个用户时,它只删除数据库中的数据。但是我想删除文件系统中的文件 注意:我正在使用Wordpress。rmdir()和unlink()不起作用 请帮忙!我试着用谷歌搜索,但什么都没有 更新:感谢pr1nc3的功能 但它还没有完成 add_action( 'delete_user', 'delete_user_dir' ); function delete_user_dir( $user_id ) { global $wpdb; $f

我想知道在用户被删除后如何删除他/她上传的文件

每当我删除一个用户时,它只删除数据库中的数据。但是我想删除文件系统中的文件

注意:我正在使用Wordpress。rmdir()和unlink()不起作用

请帮忙!我试着用谷歌搜索,但什么都没有

更新:感谢pr1nc3的功能

但它还没有完成

add_action( 'delete_user', 'delete_user_dir' );
function delete_user_dir( $user_id ) {
 global $wpdb;

 $files = 'wp-content/uploads/user/';
 $deluser = $wpdb->get_results( "SELECT user_login FROM " .$wpdb->user ." WHERE ID=".$user_id ); 
}

wp content/uploads/user/Array每次删除用户时都会运行此功能

$user\u id
是已删除用户的id

 function my_delete_user( $user_id ) {
    --> Get All posts created by $user_id
    --> Loop All posts to get attachments for each posts 
    --> Finally delete each attachment using wp_delete_attachment   

    }

add_action( 'delete_user', 'my_delete_user' );
请参阅此处

我明白了!谢谢大家的帮助。:)


`rmdir()和unlink()不起作用。`,但是为什么?检查文件和文件夹权限..是否有用户的文件留在媒体库中@Raj Mohan CHMOD与此无关,因为父目录已经是777。我只需要当管理员删除网站的成员时,它也会自动删除用户的文件夹。但是谢谢你的建议。@davideugeneperson这些文件在wp-content目录的一个子目录中。这些文件直接上传到数据库和文件系统。
function delete_user_dir( $user_id ) {

 global $wpdb;
 $url = home_url('/');
 $folder = 'wp-content/uploads/user/';
 $deluser = get_userdata( $user_id );

 $files = glob($url. $folder . $deluser->user_login .'/*');

 if(is_array($files)){
    foreach($files as $file){ 
      if(is_file($file))
        unlink($file);
    };

    rmdir($url. $folder . $deluser->user_login .'/'); 

 }else{
    rmdir($url. $folder . $deluser->user_login .'/*'); 
 }
}

add_action( 'delete_user', 'delete_user_dir' );