函数文档

upload_size_limit_filter()

💡 云策文档标注

概述

upload_size_limit_filter() 是一个 WordPress 过滤器函数,用于动态调整允许的最大上传文件大小(以字节为单位)。它通过结合网络设置和可用上传空间来计算最终限制。

关键要点

  • 这是一个过滤器函数,用于修改上传文件大小限制。
  • 参数 $size 是必需的整数,表示当前上传大小限制(字节)。
  • 返回值是整数,表示调整后的上传大小限制(字节)。
  • 函数内部使用 get_site_option() 获取网络设置,如 fileupload_maxk 和 upload_space_check_disabled。
  • 如果 upload_space_check_disabled 启用,则仅比较 $size 和基于 fileupload_maxk 计算的最大值。
  • 否则,还会考虑 get_upload_space_available() 返回的可用上传空间。
  • 最终限制是这些值中的最小值。

代码示例

function upload_size_limit_filter( $size ) {
    $fileupload_maxk         = (int) get_site_option( 'fileupload_maxk', 1500 );
    $max_fileupload_in_bytes = KB_IN_BYTES * $fileupload_maxk;

    if ( get_site_option( 'upload_space_check_disabled' ) ) {
        return min( $size, $max_fileupload_in_bytes );
    }

    return min( $size, $max_fileupload_in_bytes, get_upload_space_available() );
}

注意事项

  • 此函数在 WordPress 3.0.0 版本中引入。
  • 相关函数包括 get_upload_space_available() 和 get_site_option(),用于检查上传空间和获取网络选项。
  • 适用于多站点环境,依赖于网络设置。

📄 原文内容

Filters the maximum upload file size allowed, in bytes.

Parameters

$sizeintrequired
Upload size limit in bytes.

Return

int Upload size limit in bytes.

Source

function upload_size_limit_filter( $size ) {
	$fileupload_maxk         = (int) get_site_option( 'fileupload_maxk', 1500 );
	$max_fileupload_in_bytes = KB_IN_BYTES * $fileupload_maxk;

	if ( get_site_option( 'upload_space_check_disabled' ) ) {
		return min( $size, $max_fileupload_in_bytes );
	}

	return min( $size, $max_fileupload_in_bytes, get_upload_space_available() );
}

Changelog

Version Description
3.0.0 Introduced.