WordPress Version: 4.6
/**
* Prints default Plupload arguments.
*
* @since 3.4.0
*/
function wp_plupload_default_settings()
{
$wp_scripts = wp_scripts();
$data = $wp_scripts->get_data('wp-plupload', 'data');
if ($data && false !== strpos($data, '_wpPluploadSettings')) {
return;
}
$max_upload_size = wp_max_upload_size();
$allowed_extensions = array_keys(get_allowed_mime_types());
$extensions = array();
foreach ($allowed_extensions as $extension) {
$extensions = array_merge($extensions, explode('|', $extension));
}
$defaults = array(
'runtimes' => 'html5,flash,silverlight,html4',
'file_data_name' => 'async-upload',
// key passed to $_FILE.
'url' => admin_url('async-upload.php', 'relative'),
'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'),
'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'),
'filters' => array('max_file_size' => $max_upload_size . 'b', 'mime_types' => array(array('extensions' => implode(',', $extensions)))),
);
// Currently only iOS Safari supports multiple files uploading but iOS 7.x has a bug that prevents uploading of videos
// when enabled. See #29602.
if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
$defaults['multi_selection'] = false;
}
/**
* Filters the Plupload default settings.
*
* @since 3.4.0
*
* @param array $defaults Default Plupload settings array.
*/
$defaults = apply_filters('plupload_default_settings', $defaults);
$params = array('action' => 'upload-attachment');
/**
* Filters the Plupload default parameters.
*
* @since 3.4.0
*
* @param array $params Default Plupload parameters array.
*/
$params = apply_filters('plupload_default_params', $params);
$params['_wpnonce'] = wp_create_nonce('media-form');
$defaults['multipart_params'] = $params;
$settings = array('defaults' => $defaults, 'browser' => array('mobile' => wp_is_mobile(), 'supported' => _device_can_upload()), 'limitExceeded' => is_multisite() && !is_upload_space_available());
$script = 'var _wpPluploadSettings = ' . wp_json_encode($settings) . ';';
if ($data) {
$script = "{$data}\n{$script}";
}
$wp_scripts->add_data('wp-plupload', 'data', $script);
}