Як отримати розмір мініатюр публікації?


13

Я знаю, як встановити розмір мініатюрного зображення розміру повідомлення за допомогою WP Admin Media Settings або за допомогою цієї функції :

set_post_thumbnail_size( 150, 150 )

Але як би отримати ширину та висоту зображення, встановлені для розміру ескізів зображення?

Я хотів би мати можливість зробити щось подібне:

get_post_thumbnail_size(); // return array(150, 150)

Як це зробити? Це за допомогою get_option()та чи були б параметри клавіш для ширини та висоти мініатюр?

Відповіді:


8

Коли розмір зображення додається або WordPress ( add_image_size), або плагіном, або власним спеціальним кодом, який він додається до $_wp_additional_image_sizesглобального, я не можу знайти подібну функцію для витягування даних із цього глобального, але ви, звичайно, можете просто заглянути всередину глобальний, щоб визначити, яку ширину та висоту має розмір зареєстрованого зображення.

Приклад:

global $_wp_additional_image_sizes;
// Output width
echo $_wp_additional_image_sizes['post_thumbnail']['width'];
// Output height
echo $_wp_additional_image_sizes['post_thumbnail']['height'];

Звичайно просто не забудьте посилатися на ці значення в точці після того, як ви встановили розмір. Отже, якщо, наприклад, ви встановлюєте розмір мініатюр під час init, вам потрібно буде переконатися, що після цього потрібно зробити все, що вам потрібно (інакше ви отримаєте назад розміри, як вони були до їх встановлення).

Сподіваюся, що це допомагає.


Це здається, post-thumbnailа не post_thubmnail(WP3.6)
користувач2019515

15

Однак є й інший спосіб:

get_option( 'thumbnail_size_w' );
get_option( 'thumbnail_size_h' );

Примітка: thumbnailодин із розмірів, встановлений всередині $_wp_additional_image_sizes. Тож заклик до get_option()роботи буде працювати і для кожного іншого розміру зображення.


4
Це насправді найкращий варіант, оскільки плагін може запускати свої гачки на ньому.
фуксія

1
Тому я дивуюсь, що це ще не було згадано.
Марк

2

Як додаток до того, чому такий біль отримати ці цифри, основний прийом, який містить готовий виправлення. На жаль, це все ще не в основі.

Просто слідкуйте за ходом цього квитка: Wordpress Trac: Додайте get_intermediate_image_sizes()можливість містити не лише імена, але й розміри.


1

Майте на увазі, що це global $_wp_additional_image_sizes; може працювати не так, як очікувалося. Наприклад, при використанні в плагіні він не поверне додаткові розміри, зареєстровані Темами.


Буде, якщо ви будете робити дзвінок пізніше в послідовності дій, тобто. якщо тема реєструє розміри дії init, ваш дзвінок потрібно здійснити після того, як ця дія відбулася.
t31os

1

Єдине, що все ще відсутнє - це ідентифікатор мініатюри

$post_thumbnail_id = get_post_thumbnail_id( $post_id );
$attachment = wp_get_attachment_image_src( $post_thumbnail_id );
$width=$attachment[1];
$height=$attachment[2];

-1

Вам потрібна ця функція: wp_get_attachment_image_src

Кодекс: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

Він поверне масив, що містить URL, ширину та висоту вкладення.


1
Так, але він очікує, що ідентифікатор для даного зображення, у користувача немає ідентифікатора для передачі, він хоче дізнатись зареєстрований розмір за назвою, наприклад. мініатюра (post_thumbnail).
t31os

-1

На додаток до публікації вище:

$attachment = wp_get_attachment_image_src( $attachment_id ); // where $attachment_id is the ID of the attachment you want to get the thumbnail from

Потім просто використовуйте наступний код для відображення URL-адреси, ширини та висоти:

echo $attachment[0]; // url
echo $attachment[1]; // width
echo $attachment[2]; // height
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.