Создание пользовательского размера изображения (Не могу зарегистрировать мой размер)
Мне нужно изменить размеры изображений. Я создаю собственный плагин (а не тему). Вот что я использую:
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 шт):
Но я получаю оригинальное изображение с суффиксом 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