get_thumbnail_id возвращает изображение в полном размере

19 дек. 2014 г., 10:18:31
Просмотры: 18.9K
Голосов: 4

Мне нужна миниатюра избранного изображения записи в виде URL. Я использую следующий код для получения уменьшенной версии избранного изображения.

$post[$i]['thumbnail'] = wp_get_attachment_url(get_post_thumbnail_id($post[$i]['id'], 'thumbnail'));

Однако функция постоянно возвращает изображение в полном размере. Я даже пробовал:

$post[$i]['thumbnail'] = wp_get_attachment_url(get_post_thumbnail_id($post[$i]['id'], array(120,140)));

Но все равно возвращается большое изображение. Как это можно исправить?

1
Комментарии

Похожий вопрос: https://wordpress.stackexchange.com/questions/45033/get-the-attachement-url-for-the-medium-sized-image

Jesse Nickles Jesse Nickles
13 мар. 2023 г. 15:58:17
Все ответы на вопрос 3
1

Вы можете использовать функцию wp_get_attachment_image_src()

$thumb_id = get_post_thumbnail_id($post[$i]['id']);
$thumb_url_array = wp_get_attachment_image_src($thumb_id, 'thumbnail', true);
$post[$i]['thumbnail'] = $thumb_url_array[0];

В приведенном коде функция wp_get_attachment_image_src() возвращает массив с данными изображения: источник, высоту и ширину. $thumb_url_array[0] содержит URL миниатюры.

19 дек. 2014 г. 10:36:25
Комментарии

это решение мне нравится больше, так как его можно использовать вне файла темы

user1889580 user1889580
28 янв. 2016 г. 19:27:50
4

Сначала добавьте эту строку в файл functions.php

add_image_size( 'custom-size', 120, 140 );

Затем вы можете использовать этот размер изображения следующим образом:

<?php $thumb_id = get_post_thumbnail_id( $id );
                if ( '' != $thumb_id ) {
                    $thumb_url  = wp_get_attachment_image_src( $thumb_id, 'custom-size', true );
                    $image      = $thumb_url[0];
                }?>
            <img src="<?php echo $image;?>" alt="Пользовательское изображение" title="Пользовательское изображение">

Должно работать отлично

19 дек. 2014 г. 10:43:22
Комментарии

но почему 'thumbnail' также возвращает полный размер изображения? а не размер миниатюры?

rksh rksh
19 дек. 2014 г. 10:44:06

эй, размер миниатюры задается в админке WordPress: Настройки->Медиафайлы->Размер миниатюры. Пожалуйста, проверь, какой размер указан для миниатюр в медиафайлах

Amit Mishra Amit Mishra
19 дек. 2014 г. 10:46:03

@amrith там установлен стандартный размер 150x150, но я получаю полный размер изображения, а не миниатюру

rksh rksh
19 дек. 2014 г. 11:14:54

эй rksh, пожалуйста, проверь отредактированный ответ, у меня сработало

Amit Mishra Amit Mishra
19 дек. 2014 г. 11:30:25
0

Синтаксис определяется следующим образом:

<?php echo get_the_post_thumbnail( $post_id, $size, $attr ); ?> 

Вы можете получить миниатюру WordPress по умолчанию (150x150) с помощью следующего кода:

<?php get_the_post_thumbnail( $post_id, 'thumbnail' ); ?>

Если вам нужна миниатюра пользовательского размера, используйте следующий код:

<?php get_the_post_thumbnail( $post_id, array( 200, 200) ); ?>

Для дополнительной информации посетите WordPress Codex: Нажмите здесь

19 дек. 2014 г. 15:27:20