add_image_size () для певних типів публікацій


18
set_post_thumbnail_size( 80, 80, true ); // true for all post types

Припустимо, у моєму блозі є два типи публікацій: публікація, відео та продукт. Я, можливо, захочу розмір зображення 80х80 для своїх публікацій, але 100х100 для своїх відео та 50х100 для своїх продуктів. Наскільки мені відомо, я змушений створювати ескізи для своїх поштових зображень розмірами 100x100, а також 50x100. А для своїх продуктів я змушений створювати ескізи розміром 80x80 та 100x100, хоча я ніколи не буду їх використовувати.

Чи є спосіб створити розміри зображень, що базуються на типах публікацій, щоб ви не створили купу зображень, які не плануєте використовувати, і витрачаєте ресурси, які можна використовувати в іншому місці?


Я зіткнувся з точно такою ж потребою.
MikeSchinkel

Що станеться, якщо ви використовуєте цю функцію image_resize в темі в тих частинах, де вам потрібен цей розмір зображення? Ви також можете написати функцію скорочення для багаторазового використання, залежно від контексту.

Здається, явний нагляд за мною, чи справді це ще не було вирішено?
Натан Хорнбі

Відповіді:


12

Немає можливості базувати розміри зображень на типі публікації, оскільки зображення ще не додаються до публікації, коли ви завантажуєте їх, а проміжні розміри зображень створюються (коли ви просто додаєте їх за допомогою "Нової медіа", вони навіть не додаються на будь-яку посаду взагалі).

Однак я нещодавно створив два плагіни, які разом будуть робити те, що ти хочеш. Віртуальні проміжні зображення перехоплюватимуть створення проміжних розмірів зображень: вони не створюватимуться на диску, але все ще існують у масиві метаданих. Це змушує WordPress думати, що вони існують, тому ви можете використовувати їх як звичайні зображення. Супровідний плагін On-Demand Resizer створить відсутні розміри зображень, коли вони будуть запитані. Коли перший образ буде створений, усі наступні запити будуть просто подані новоствореному зображенню.

Ці плагіни потребують перезапису, перш ніж я поміщую їх у каталог плагінів WordPress, але вони повинні бути безпечними. Або хоча б мати TODOкоментарі, де вони небезпечні.


Приємно!
MikeSchinkel

2

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


0

Я придумав таке рішення. Він створює зображення лише для користувальницького типу публікації без створення додаткових. Єдина проблема полягає в тому, що якщо ви використовуєте плагіни, такі як розширені спеціальні поля, при спробі візуалізації поля галереї він відображає лише розміри зображень WordPress за замовчуванням: "мініатюра", "середня", "велика", і ви не можете отримати доступ до створених спеціальних розмірів зображень .

if ( function_exists ('add_image_size') ) {

function remove_default_img($sizes) {
    unset( $sizes['medium']);
    unset( $sizes['large']); 
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img');

$type = get_post_type($_REQUEST['post_id']);
// Post_Name Image Sizes ======================================================
if ( $type === "Custom_Post_Name" || $post_type === "Custom_Post_Name" ) {
add_image_size('custom_size_img', 165, 249, true);
}

}

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.