我在一个WordPress单站点上工作,在前端,在一个定制表单下面,我有一个文件上传功能,我需要显示最大上传大小。
在我的本地Laragon WAMP设置中,PHPpost_max_size
设置为2G
. 我想降级到20M
(20 mb)。
在搜索和阅读了几篇博客文章后,我在我的主题中添加了以下代码functions.php
:
<?php
// Set upload size limit to 20mb.
@ini_set(\'upload_max_size\', \'20M\');
@ini_set(\'post_max_size\', \'20M\');
@ini_set(\'max_execution_time\', \'300\');
/**
* Filter the upload size limit for non-administrators.
*
* @param string $size Upload size limit (in bytes).
*
* @return int Filtered size limit.
*/
function wpse_control_upload_size_limit( $size ) {
if ( ! current_user_can( \'manage_options\' ) ) {
return 20971520; // 20mb to binary bytes.
}
return $size;
}
add_filter( \'upload_size_limit\', \'wpse_control_upload_size_limit\', 20 );
有了这段代码,对于非管理员用户,我可以看到管理面板Upload New Media 页面显示:Maximum upload file size: 20 MB.
问题是:我想在前端显示相同的最大文件大小限制信息。
到目前为止,我尝试的是将以下代码放入functions.php
:
var_dump(@ini_get(\'post_max_size\'));
但这是2G
限制,因为它没有获得WordPress设置。我还尝试将此代码挂接到upload_size_limit
运气不好:
add_action( \'upload_size_limit\', function() {
var_dump( @ini_get( \'post_max_size\' ) );
});
我知道有一个插件名为Increase Maximum Upload File Size, 但我不想为这个功能使用插件。我也知道,在multisite中,我们已经设置了可以获得最大上载大小的数据。但是如何在单个WordPress实例中在首页表单上显示最大上载大小?