WP_Filesystem_Direct::delete() WordPress Method
The delete() method is a member of the WP_Filesystem_Direct class. This class provides an implementation of the Wordpress file system abstraction layer. The delete() method is used to delete a file or directory. It takes a single parameter, which is the path to the file or directory to delete. If the path is a file, the file will be deleted. If the path is a directory, the directory will be deleted, along with all of its contents.
WP_Filesystem_Direct::delete( string $file, bool $recursive = false, string|false $type = false ) #
Deletes a file or directory.
Parameters
- $file
(string)(Required)Path to the file or directory.
- $recursive
(bool)(Optional) If set to true, deletes files and folders recursively.
Default value: false
- $type
(string|false)(Optional)Type of resource. 'f' for file, 'd' for directory.
Default value: false
Return
(bool) True on success, false on failure.
Source
File: wp-admin/includes/class-wp-filesystem-direct.php
public function delete( $file, $recursive = false, $type = false ) { if ( empty( $file ) ) { // Some filesystems report this as /, which can cause non-expected recursive deletion of all files in the filesystem. return false; } $file = str_replace( '\\', '/', $file ); // For Win32, occasional problems deleting files otherwise. if ( 'f' === $type || $this->is_file( $file ) ) { return @unlink( $file ); } if ( ! $recursive && $this->is_dir( $file ) ) { return @rmdir( $file ); } // At this point it's a folder, and we're in recursive mode. $file = trailingslashit( $file ); $filelist = $this->dirlist( $file, true ); $retval = true; if ( is_array( $filelist ) ) { foreach ( $filelist as $filename => $fileinfo ) { if ( ! $this->delete( $file . $filename, $recursive, $fileinfo['type'] ) ) { $retval = false; } } } if ( file_exists( $file ) && ! @rmdir( $file ) ) { $retval = false; } return $retval; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |