Редагування WordPress post thumbnail

Last update: 22 Травня, 2023

Category: WordPress

Працюючий на 20.05.2023 код:

function upd_wp_image_sizes() {
    remove_image_size( 'large' );
    remove_image_size( 'medium' );
    remove_image_size( 'medium_large' );
    remove_image_size( 'full_size' );
    remove_image_size( 'original' );
    remove_image_size( 'medium' );
    remove_image_size( 'thumbnail' );
    remove_image_size( '1536x1536' );
    remove_image_size( '2560x1920' );
    remove_image_size( '2048x2048' );
    add_image_size( 'thumbnail', 480, 270, true );
    add_image_size( 'medium', 1080, 1024, true );
    add_image_size( 'large', 1920, 1080, true );
}
add_action('init', 'upd_wp_image_sizes');

В ньому ми:

  1. Спочатку прибираємо всі непотрібні розміри.
  2. Потім задаємо розміри потрібних для нас варіантів.

В результаті ми отримуємо:

  • Thumbnail 480х270
  • Medium 1080х1024
  • Large 1920х1080
  • Full size (в відповідності до оригіналу)

Інше (шматочки коду з інших сайтів, які можуть бути корисні, але коректність роботи варто перевіряти)

Як вимкнути стандартні налаштування зменшення розмірів:

function dco_remove_default_image_sizes( $sizes) {
    return array_diff( $sizes, array(
        'thumbnail',
        'medium',
        'medium_large',
        'large',
    ) );
}
add_filter('intermediate_image_sizes', 'dco_remove_default_image_sizes');

Якщо варіант вище Вам не підійшов, можливо стане в нагоді цей варіант:

function filter_image_sizes( $sizes) {
    unset( $sizes['1536x1536']);
    unset( $sizes['2560x1920']);
    unset( $sizes['2048x2048']);
    unset( $sizes['large']);
    unset( $sizes['medium']);
    unset( $sizes['medium_large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'filter_image_sizes');

Ось варіант не просто відалення існуючих варіантів, астворення потрібних варіантів:

function my_epl_image_sizes_filter( $sizes ) {
    $sizes = array(
        array(
            'id'     => 'admin-list-thumb',
            'height' => 100,
            'width'  => 100,
            'crop'   => true
        ),
        array(
            'id'     => 'epl-image-medium-crop',
            'width'  => 400,
            'height' => 300,
            'crop'   => true
        )
    );
    return $sizes;
}
add_filter( 'epl_image_sizes' , 'my_epl_image_sizes_filter' );

 

Додати нові розміри:

if ( function_exists( 'add_theme_support' ) ) {
    add_theme_support( 'post-thumbnails' );
    set_post_thumbnail_size( 150, 150, true ); // default Featured Image dimensions (cropped)

    // additional image sizes
    // delete the next line if you do not need additional image sizes
    add_image_size( 'category-thumb', 300, 9999 ); // 300 pixels wide (and unlimited height)
}

цуацуа

цуа

the_post_thumbnail(); // Without parameter ->; Thumbnail
the_post_thumbnail( 'thumbnail' ); // Thumbnail (default 150px x 150px max)
the_post_thumbnail( 'medium' ); // Medium resolution (default 300px x 300px max)
the_post_thumbnail( 'medium_large' ); // Medium-large resolution (default 768px x no height limit max)
the_post_thumbnail( 'large' ); // Large resolution (default 1024px x 1024px max)
the_post_thumbnail( 'full' ); // Original image resolution (unmodified)
the_post_thumbnail( array( 100, 100 ) ); // Other resolutions (height, width)
get_the_post_thumbnail();
if ( has_post_thumbnail() ) {
    the_post_thumbnail();
}
<div class="post-item">
    <?php
        $prev_post = get_adjacent_post(false, '', true);
        if(!empty($prev_post)) {
            echo '<div class="image">'. get_the_post_thumbnail( $prev_post, array( 100, 100 ) ).'</div>
                <div class="content">
                    <h5><a href="' . get_permalink($prev_post->ID) . '" title="' . $prev_post->post_title . '">' . $prev_post->post_title . '</a></h5>
                </div>';
        }
    ?>
</div>
<div class="post-item">
    <?php
        $next_post = get_adjacent_post(false, '', false);
        if(!empty($next_post)) {
            echo '<div class="image">'. get_the_post_thumbnail( $next_post, array( 100, 100 ) ).'</div>
                <div class="content">
                    <h5><a href="' . get_permalink($next_post->ID) . '" title="' . $next_post->post_title . '">' . $next_post->post_title . '</a></h5>
                </div>';
        }
    ?>
</div>
//Default WordPress
the_post_thumbnail( 'thumbnail' );     // Thumbnail (150 x 150 hard cropped)
the_post_thumbnail( 'medium' );        // Medium resolution (300 x 300 max height 300px)
the_post_thumbnail( 'medium_large' );  // Medium Large (added in WP 4.4) resolution (768 x 0 infinite height)
the_post_thumbnail( 'large' );         // Large resolution (1024 x 1024 max height 1024px)
the_post_thumbnail( 'full' );          // Full resolution (original size uploaded)

//With WooCommerce
the_post_thumbnail( 'shop_thumbnail' ); // Shop thumbnail (180 x 180 hard cropped)
the_post_thumbnail( 'shop_catalog' );   // Shop catalog (300 x 300 hard cropped)
the_post_thumbnail( 'shop_single' );    // Shop single (600 x 600 hard cropped)
the_post_thumbnail('post-thumbnail', ['class' => 'img-responsive responsive--full', 'title' => 'Feature image']);
<?php if(has_post_thumbnail()):
echo get_the_post_thumbnail(get_the_ID(), 'category-thumb'); ?>
else: <img src="http://example.com/675x385" alt="">
<?php endif; ?>