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


Top ↑

Return

bool True on success, false on failure.


Top ↑

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;
}


Top ↑

Changelog

Changelog
Version Description
2.5.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Bachsau

    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.

You must log in before being able to contribute a note or feedback.