Jak wyłączyć WordPress z tworzenia miniatur?

17

Długo rozglądałem się po Internecie, jak wyłączyć WordPress z tworzenia wielu miniatur.

Widziałem w większości samouczków, aby ustawić wszystkie obrazy na 0 w sekcji mediów. Zrobiłem to, ale przechodzę do mojego folderu przesyłania i nadal tworzy wiele zdjęć.

Nie mogę znaleźć na to żadnego rozwiązania. Powodem tego jest oszczędność miejsca na koncie hosta.

Daniel
źródło
Wyłącz wszystkie wtyczki i przejdź do domyślnego motywu. Następnie powinieneś być w stanie ustawić wszystkie rozmiary obrazów 0i powstrzymać WP przed generowaniem tych rozmiarów. Jeśli to nie zadziała, zgłoś się. Jeśli to działa, oznacza to, że niektóre wtyczki lub motywy zakłócają.
kaiser

Odpowiedzi:

14

Aby zbudować odpowiedź Maxa Yudina, powinieneś użyć intermediate_image_sizes_advancedfiltra, a nie image_size_names_choose. Dodaj do functions.php

function add_image_insert_override($sizes){
    unset( $sizes['thumbnail']);
    unset( $sizes['medium']);
    unset( $sizes['large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'add_image_insert_override' );

Inną łatwiejszą opcją, którą moim zdaniem działa, jest przejście do Ustawień -> Media i ustawienie każdego pola dla szerokości i wysokości do 0

Wyck
źródło
9

Możesz także filtrować rozmiary_pośrednich_obrazów za pomocą pustej tablicy.

 add_filter( 'intermediate_image_sizes', '__return_empty_array' );
Chris_O
źródło
3

Jeśli dobrze pamiętam, musisz wprowadzić unsetwszystkie wartości domyślne i dodać nowe Size:

    <?php
function mxdCustomImageSizes($sizes) {
    unset( $sizes['thumbnail']);
    unset( $sizes['medium']);
    unset( $sizes['large']);
    unset( $sizes['full'] );

    $myimgsizes = array(
        'full-size' => __( 'Full Size' )
    );
    if( !empty($sizes) )
        return array_merge($sizes, $myimgsizes);
    else
        return $myimgsizes;
}
add_filter('intermediate_image_sizes_advanced', 'mxdCustomImageSizes');

A następnie dodaj full-sizerozmiar, 99999x99999poniżej którego rozmiar jest prawie niewiarygodny, więc jest pełny.

add_image_size( 'full-size', 99999, 99999, false );

Popraw mnie, jeśli coś pójdzie nie tak

PS Potrzebujesz wtyczki, aby „zapisać” wszystkie swoje zdjęcia zgodnie z nowymi ustawieniami. Mogę polecić wtyczkę Regenerate Thumbnails.

PPS Gdy jest to pojedyncza opcja, w każdym razie musisz wybrać jedną z nich :). Nie ma prostego sposobu na wybranie jednego rozmiaru w nowym oknie (3.5.1) Media.

Max Yudin
źródło
Cześć Max Myślę, że to zły filtr, image_size_names_choosejest do wyjścia, gdy wybierzesz obrazy w polu multimediów.
Wyck
Tak masz rację. Dziękuję za informację, teraz muszę zrewidować niektóre rzeczy, które już zrobiłem.
Max Yudin
2

Odwiedź stronę Ustawienia> Media na pulpicie nawigacyjnym WordPress. W sekcji Rozmiary obrazu zmień wszystkie wartości na 0.

Media Settimgs

Zapisz zmiany. Dzięki temu WordPress nie będzie generował miniaturek, średnich i dużych rozmiarów każdego przesyłanego obrazu.

Zauważysz również, że kiedy wstawiasz obraz, brakuje pola rozwijanego „Rozmiar”.

shea
źródło
1
To nie działa!
Ali Hashemi,
@Pazis Działa w starszej wersji WordPress, ale wydaje się, że nie działa w wersji 4.0
shea
0
function remove_default_image_sizes( $sizes) {
    unset($sizes['thumbnail']);
    unset($sizes['medium']);
    unset($sizes['large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced','remove_default_image_sizes');

Nie zapomnij return $sizes;tego polubić.

Następnie dodaj nowe rozmiary obrazów, takie jak ...

if(function_exists('add_image_size')){
    add_image_size('my_100x100_crop',100,100,true); // Crop mode
    add_image_size('my_100x100_resize',100,100); // Resize mode
}

Przetestowany!

L2aelba
źródło
1
To usuwa rozmiary z „Wstaw do postu”, ale Wordpress nadal generuje miniatury!
Ali Hashemi,
0

Aby uzyskać najnowszą wersję WordPress z aktywowaną wtyczką WooCommerce, użyj tego kodu:

function add_image_insert_override($sizes){
    unset($sizes['thumbnail']);
    unset($sizes['medium']);
    unset($sizes['medium_large']);
    unset($sizes['large']);        
    unset($sizes['blog-isotope']);
    unset($sizes['product_small_thumbnail']);
    unset($sizes['shop_catalog']);
    unset($sizes['shop_single']);
    unset($sizes['shop_single_small_thumbnail']);
    unset($sizes['shop_thumbnail']);
    unset($sizes['woocommerce_thumbnail']);
    unset($sizes['woocommerce_single']);
    unset($sizes['woocommerce_gallery_thumbnail']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'add_image_insert_override' );
add_filter('max_srcset_image_width', create_function('', 'return 1;'));

Byłoby jednak świetnie, gdybyś zostawił jedną małą miniaturę ( thumbnail) i jeden obraz średniej wielkości ( medium).

PS Możesz zobaczyć wszystkie zarejestrowane rozmiary, instalując wtyczkę Regenerate Thumbnails . I nie zapomnij o add_image_size()generowaniu po stronie motywu.

Bogdan
źródło