Создание пользовательского размера изображения (Не могу зарегистрировать мой размер)

Мне нужно изменить размеры изображений. Я создаю собственный плагин (а не тему). Вот что я использую:

function myplugintest_custom_image_size_500_x_500() {
    add_image_size( 'myplugintest-size-500-500', 500, 500, 0 );
}
add_action( 'init', 'myplugintest_custom_image_size_500_x_500' );

Затем мне нужно получить ссылку на изображение для отображения в моем пользовательском блоке (в myplugintest.php).

$image_url = wp_get_attachment_image_url($product->get_image_id(), 'myplugintest-size-500-500', false);

Но я получаю оригинальное изображение с суффиксом scaled.

Это работает, если я использую уже зарегистрированные размеры, например:

$image_url = wp_get_attachment_image_url($product->get_image_id(), 'woocommerce_single', false);

В чем может быть проблема и как мне зарегистрировать мой размер?

Upd 1:

Если погружаться в функцию wp_get_attachment_image_url все глубже, то можно найти wp_get_attachment_metadata, которая возвращает $meta. В $meta есть массив sizes который содержит все зарегистрироанные размеры, но там нету моего размера.


Ответы (1 шт):

Автор решения: SeVlad

Но я получаю оригинальное изображение с суффиксом scaled.

Это говорит о загрузке огромных изображений

Для вызова же миниатюры нужно использовать не wp_get_attachment_image_url, а the_post_thumbnail или get_the_post_thumbnail.

И внимательно изучаем параметры функции

add_image_size( 'myplugintest-size-500-500', 500, 500, false );

false, а не 0.

И вешать не на init, а на plugin_loaded

→ Ссылка