WP_Filesystem_Direct::chmod( string $file, int|false $mode = false, bool $recursive = false ): bool
Changes filesystem permissions.
Parameters
-
$file
string Required -
Path to the file.
-
$mode
int|false Optional -
The permissions as octal number, usually 0644 for files, 0755 for directories.
Default:
false
-
$recursive
bool Optional -
If set to true, changes file permissions recursively.
Default:
false
Return
bool True on success, false on failure.
Source
File: wp-admin/includes/class-wp-filesystem-direct.php
.
View all references
public function chmod( $file, $mode = false, $recursive = false ) {
if ( ! $mode ) {
if ( $this->is_file( $file ) ) {
$mode = FS_CHMOD_FILE;
} elseif ( $this->is_dir( $file ) ) {
$mode = FS_CHMOD_DIR;
} else {
return false;
}
}
if ( ! $recursive || ! $this->is_dir( $file ) ) {
return chmod( $file, $mode );
}
// Is a directory, and we want recursive.
$file = trailingslashit( $file );
$filelist = $this->dirlist( $file );
foreach ( (array) $filelist as $filename => $filemeta ) {
$this->chmod( $file . $filename, $mode, $recursive );
}
return true;
}
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
There must be a way to disable this. The server’s umask is correctly configured and this is useless work and in default configuration makes WordPress less secure. Trust the admin. umask is there for a reason. And besides that, umask can be set by php, which is much more efficient and more secure than chmod’ing everything after the fact.