wp_handle_upload загружает несколько размеров для каждого изображения

Я пытаюсь создать функцию загрузки файла в плагине WordPress, который позволяет пользователю загрузить один файл, который позже будет отображаться в виде эскиза. Код, который я использовал, выглядит так:

$file_return = wp_handle_upload($logo, array('test_form' => false));
if (isset($file_return['error']) || isset($file_return['upload_error_handler'])) {
return false;
} else {
$filename = $file_return['file'];

$attachment = array(
'post_mime_type' => $file_return['type'],
'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $filename ) ),
'post_content' => '',
'post_status' => 'inherit',
'guid' => $file_return['url']
);

$attachment_id = wp_insert_attachment($attachment, $file_return['file']);

$attachment_data = wp_generate_attachment_metadata($attachment_id, $filename);
wp_update_attachment_metadata($attachment_id, $attachment_data);
if (0 < intval($attachment_id)) {
return $attachment_id;
}
}

И HTML прост:

<form ...>
<input type='file' name='logo-upload' id='logo-upload'>
</form>

Также JS для загрузки логотипа через AJAX: (JQuery)

var formData = new FormData();
var logo = $('#logo-upload')[0].files[0];
formData.append('logo', logo);
$.ajax({
method: 'POST',
url: '...',
processData: false,
contentType: false,
data: formData
}).done(function (data) {
alert('uploaded!');
alert(data);
});

Это не весь код, но я считаю, что это все, что имеет отношение к делу.
Проблема здесь в том, что вместо одного файла с именем говорят image.png будучи загруженным, я получаю это:

image.png
image-150x150.png
image-300x179.png
image-410x121.png
...
Я знаю, что WordPress делает это по умолчанию, но есть ли способ обойти это?

0

Решение

В настройках «Медиа» («Настройки» -> «Медиа») вы можете попытаться установить все размеры, указанные там, в 0 (ноль) по ширине и высоте. Это должно помочь.

0

Другие решения

Вы можете использовать WP фильтры. Функция unset () уничтожает указанные переменные:

    add_filter( 'intermediate_image_sizes_advanced', 'prefix_remove_default_images' );
// Remove default image sizes here.
function prefix_remove_default_images( $sizes ) {
unset( $sizes['small']); // 150px
unset( $sizes['medium']); // 300px
unset( $sizes['large']); // 1024px
unset( $sizes['medium_large']); // 768px
return $sizes;
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector