大きな画像をアップロードするユーザーに問題があります。私はこのスニペットでこれを防ぎました...
add_filter('wp_handle_upload_prefilter', 'f711_image_size_prevent');
function f711_image_size_prevent($file) {
$size = $file['size'];
$size = $size / 1024; // Calculate down to KB
$type = $file['type'];
$is_image = strpos($type, 'image');
$limit = 5000; // Your Filesize in KB
if ( ( $size > $limit ) && ($is_image !== false) ) {
$file['error'] = 'Image files must be smaller than '.$limit.'KB';
}
return $file;
}
これはうまくいきますが、メディアアップロードページにはまだ「最大アップロードファイルサイズ:64 MB」というテキストが表示されます。
私はそれがサーバPHP configからこの値を取得すると思います、このテキストを修正する方法はありますか?
このテキストの由来は wp-admin/includes/media.php#L1946
テキストを変更するために利用可能なフィルタはありません。それでもあなたが望むなら、テキストを修正するためにgettext
フィルタを使うことができます。
add_action('post-html-upload-ui', function () {
add_filter('gettext', 'media_upload_limit_custom_text');
});
/**
* Customize the max media size text
* @param string $text
* @return string $text
*/
function media_upload_limit_custom_text($text) {
if ($text == 'Maximum upload file size: %s.') {
return __('Image files must be smaller than 5000 KB', 'your-text-domain');
}
return $text;
}
テキストが表示される直前にgettext
フィルタを追加しています。