У програмуванні для WordPress іноді стикаєшся з ситуаціями, коли необхідно додавати пости з PHP-коду. Зазвичай таке трапляється, якщо ви не хочете, з якихось причин, показувати користувачеві адмінку, China але хочете, щоб він міг додавати матеріали. Або, як було в моєму випадку, коли ви використовуєте для користувача типи записів. і знову ж таки, користувач сайту повинен мати можливість додавати нові записи.
У моїй задачі до таких постів потрібна була ще мініатюра. Трохи покопавшись в буржуйнете, я знайшов непогане рішення:
Правда, радів я не довго. Виявилося, що саме у мене виклик wp_generate_attachment_metadata (), яка серед іншого генерує зменшені версії картинки, призводив до того, що вміст зменшених картинок викидати в браузер, замість того, щоб зберігатися в файл. Я знайшов опис такої ж проблеми в интеренете. але там, на жаль, не було рішення. Покопавшись в исходниках WordPress, я зрозумів, що в одній з функцій не спрацьовує функція PHP ob_start (), з невідомої науці причини.
Загалом, побившись з цим пристойний час, я вирішив просто самостійно Successful згенерувати картинки всіх розмірів. Частково код узятий прямо з WordPress:
Ну і залишилося тепер відключити саме для нашої сторінки генерацію маленьких картинок функцією wordpress. Для цього потрібно використовувати хук intermediate_image_sizes_advanced: