set_post_thumbnail_size( 80, 80, true ); // true for all post types
Предположим, у меня есть два типа постов в моем блоге: пост, видео и продукт. Возможно, мне понадобится размер изображения 80x80 для моих сообщений, но 100x100 для моих видео и 50x100 для моих продуктов. Насколько мне известно, я вынужден создавать миниатюры для своих сообщений Post размером 100x100, а также 50x100. А для своих продуктов я вынужден создавать миниатюры размером 80x80 и 100x100, хотя я никогда ими не буду пользоваться.
Есть ли способ создать размеры изображений, основанные на типах записей, чтобы в итоге вы не создали кучу изображений, которые вы не планируете использовать, и тратите ресурсы, которые можно было бы использовать в других местах?
Ответы:
Размеры изображений не могут быть основаны на типе сообщения, так как изображения еще не прикреплены к сообщению, когда вы загружаете их, и создаются промежуточные размеры изображения (когда вы просто добавляете их через «Новые медиа», они даже не прикрепляются на любой пост вообще).
Однако недавно я создал два плагина, которые вместе будут делать то, что вы хотите. Виртуальные промежуточные изображения будут перехватывать создание промежуточных размеров изображений: они не будут создаваться на диске, но все еще существуют в массиве метаданных. Это заставляет WordPress думать, что они существуют, поэтому вы можете использовать их как обычные изображения. Сопутствующий плагин On-Demand Resizer создаст недостающие размеры изображений, когда они будут запрошены. При первом запросе изображения оно создается, все последующие запросы будут обслуживаться только что созданному изображению.
Эти плагины нужно переписать, прежде чем я положу их в каталог плагинов WordPress, но они должны быть безопасными. Или, по крайней мере, есть
TODO
комментарии, где они небезопасны.источник
Я разместил некоторый код в этой другой ветке, который устанавливает переходный процесс с типом публикации при загрузке изображения, а затем проверяет значение этого переходного процесса и соответствующим образом корректирует размер пост-эскиза после завершения загрузки. Это не идеально или пуленепробиваемый, но он должен по крайней мере продемонстрировать концепцию.
источник
Я придумал следующее решение. Это создает изображения только для пользовательского типа сообщения без создания каких-либо дополнительных. Единственная проблема заключается в том, что если вы используете плагины, такие как расширенные настраиваемые поля, при попытке визуализации поля галереи отображаются только размеры изображений WordPress по умолчанию: «миниатюра», «средний», «большой», и вы не можете получить доступ к созданным пользовательским размерам изображений. ,
}
источник