Дописать руками в базу данных размер картинки
-
При загрузке картинок все размеры миниатюр пишутся в wp_postmeta -> _wp_attachment_metadata
в таком видеa: 5: { s: 5: "width";i: 1024;s: 6: "height";i: 1447;s: 4: "file";s: 21: "2017/07/test_file.jpg";s: 5: "sizes";a: 4: { s: 9: "thumbnail";a: 4: { s: 4: "file";s: 21: "test_file-300x300.jpg";s: 5: "width";i: 300;s: 6: "height";i: 300;s: 9: "mime-type";s: 10: "image/jpeg"; } s: 6: "medium";a: 4: { s: 4: "file";s: 21: "test_file-283x400.jpg";s: 5: "width";i: 283;s: 6: "height";i: 400;s: 9: "mime-type";s: 10: "image/jpeg"; } s: 7: "testree";a: 4: { s: 4: "file";s: 22: "test_file-920x1300.jpg";s: 5: "width";i: 920;s: 6: "height";i: 1300;s: 9: "mime-type";s: 10: "image/jpeg"; } s: 10: "list-index";a: 4: { s: 4: "file";s: 21: "test_file-280x400.jpg";s: 5: "width";i: 280;s: 6: "height";i: 400;s: 9: "mime-type";s: 10: "image/jpeg"; } } s: 10: "image_meta";a: 12: { s: 8: "aperture";s: 1: "0";s: 6: "credit";s: 0: "";s: 6: "camera";s: 0: "";s: 7: "caption";s: 0: "";s: 17: "created_timestamp";s: 1: "0";s: 9: "copyright";s: 0: "";s: 12: "focal_length";s: 1: "0";s: 3: "iso";s: 1: "0";s: 13: "shutter_speed";s: 1: "0";s: 5: "title";s: 0: "";s: 11: "orientation";s: 1: "0";s: 8: "keywords";a: 0: {} } }
Вопрос: как руками дописать несуществующий размер картинки, который руками был добавлен на сервер? — к примеру
` s: 10: «not-added»;a: 4: {
s: 4: «file»;s: 21: «test_file-1024×1447.jpg»;s: 5: «width»;i: 1024;s: 6: «height»;i: 1447;s: 9: «mime-type»;s: 10: «image/jpeg»;
}`
в чем проблема у меня
Если я дописываю руками в подобном роде и выставляю размеры больше или равные оригиналу — то все картинки вызываются с одинаковым размером и игнорируются миниатюрыпо командам
echo wp_get_attachment_image_url( $idd, ‘full’ ) .’
‘;
echo wp_get_attachment_image_url( $idd, ‘medium’ ) .’
‘;
echo wp_get_attachment_image_url( $idd, ‘testre’ ) .’
‘;
было
http://site.tk/wp-content/uploads/2017/07/test_file.jpg
http://site.tk/wp-content/uploads/2017/07/test_file-283×400.jpg
http://site.tk/wp-content/uploads/2017/07/test_file-1000×1000.jpg
при моем вмешательстве все
http://site.tk/wp-content/uploads/2017/07/test_file.jpg
http://site.tk/wp-content/uploads/2017/07/test_file.jpg
http://site.tk/wp-content/uploads/2017/07/test_file.jpg1 — я не экономлю ресурсы — мне такое не предлагать
1.1 — я увеличиваю скорость загрузки страницы и даю возможность пользователю быстро смотреть и загружать оригиналы
1.2 — ширина картинки важна для SEO — по-этому миниатюры не предлогать
2 — Затея эта — для плагина «PNG to JPG» — он умеет конвертировать все png в JPG и сохранять главный оригинал PNG — но проблема что PNG полностью изымается из базы данных и его невозможно удалить при редактировании\удалении картинки
3 — хочу допилить плагин и загонять оригинальный PNG файл в таблицу — дописав строки запроса в базу данных
-
Вопрос: как руками дописать несуществующий размер картинки, который руками был добавлен на сервер?
А вопрос «как сделать проще и правильнее» Вас не интересует?
А вопрос «как сделать проще и правильнее» Вас не интересует?
вот любят все задавать итак к непонятному вопросу — другие. и для кого специально гписаны пункты 2и3?
Если хотите советовать такими вопросами , то прочитайте мой и посмотрите плагин — там есть запросы кроме одного, который мне и нужен
Вам же было сказано что затея для плагина — мне нужно проанализировать какие требования к заполнению таблицы. зная требования и ограничения я смогу дополнить её правельным запросом.
выше все описано потробно — мне не понятно от чего зависят цыфры перед размерами — бывает от 6 до 9 а бывает от 20 до 30 и прочее
от чего зависят цыфры перед размерами — бывает от 6 до 9 а бывает от 20 до 30 и прочее
a: 5 и s: 9 ? Тип и размер для сериализованных данных http://php.net/manual/ru/function.serialize.php .
Вопрос: как руками дописать несуществующий размер картинки, который руками был добавлен на сервер?
Вероятно, получить значение этой ячейки, применить к ней unserialize, добавить свой размер в массив, применить serialize и записать обратно.
1 — я не экономлю ресурсы — мне такое не предлагать
Тогда почему не воспользоваться стандартной функцией add_image_size?
- Ответ изменён 7 лет, 2 месяца назад пользователем Denis Yanchevskiy.
Я не программист (образование юрист) — моя задача наполнять сайты и следить за работоспособностью и подшаманивать что мне не нравится — на програмирование у меня не стоит и это не основная задача, но учить иногда нужно!
Вероятно, получить значение этой ячейки, применить к ней unserialize, добавить свой размер в массив, применить serialize и записать обратно.
Это как раз те крупицы которые мне отлично помогают. СПАСИБО!
Тогда почему не воспользоваться стандартной функцией add_image_size?
Борюсь с этим вопросом уже 3-6 месяцев и напишу ещё раз
1 есть сайты информационные — они по 5-50 гб
2 У меня сайт галерея — он в перспективе рассчитан на 100-2000 гб — мне нужно для пользователя сохранить оригинал
3 Оригинал в формате PNG = 20 мегабайтам
4 как пользователю просматривать галерею в которой 20 файлов по 20 гб — у него и у меня весь канал засрется, особенно когда пользователей будет много
5 Можно сделать миниатюры — но Миниатюры уйдут в жопу индекса поисковых систем
6 Нужно:
6.1 Сохранить оригинал PNG — 20mb и 10000×10000 разрешение
6.2 Создать копию оригинал в формате JPG — 1mb и 10000×10000 разрешение
6.3 Создать миниатюры из формата JPG
7 В итоге все довольны
7,1 Пользователь и я снижаем нагрузку на канал
7,2 Устройствам легче просматривать страницы
7,3 Пользователь сможет получить доступ к оригиналу PNG — 20mb и 10000×10000 разрешение
7,4 В индексе сайт будет на первых позициях из-за того что JPG 10000×10000 разрешение8 — ВСЕ ЧТО НАПИСАНО ВЫШЕ ДЕЛАЕТ PNG to JPG — кроме отправки в базу данных оригинала PNG
ВСЕ ДОВОЛЬНЫ
вот любят все задавать
Тогда извините, что пытался помочь.
Удачи.Тогда извините, что пытался помочь.
Удачи.Я принимаю любую помощь — так как далек от программирования
так как постоянно задают одни и те же вопросы в моей проблеме я пытаюсь описать то чего не нужно предлагать —
Я за долгое общение в интернете убедился что все мыслят по разному, а некоторые линейно, что связано со способом жизни,
Вспомнился момент из фильма про Джопса:Джопс на конференции пытается усовершенствовать ПК для удобства , а программист не видит всего масштаба желаемого Джопсом и действует в рамках в границах текущих знаний — в следствии программист сразу уволен, а Джжопс добивается успеха.
Я не сравниваю себя с Джопсом — Я пытаюсь повторить то что видел на сайтах ГИГАНТАХ и применить в своем деле. А интернет завален приложениями по платному сжатию миниатюр и экономии хостинга (хотя сейчас 1 гб стоит копейки)
- Ответ изменён 7 лет, 2 месяца назад пользователем kolshix.
ВОПРОС РЕШЕН
нужно использовать
serialize()
сделал запрос — потом раскодировал — потом ввел тестовые записи — назад закодировал — вписал в базу данных руками — все заработало (даже удалились в ручную загнанные изображения для проверки )// раскодируем $serialize_array = "то что в базе данных"; $data = unserialize(htmlspecialchars_decode($serialize_array)); // дописываем нужный код $data[sizes][png_old] = Array( "file" => "Cover.png", "width" => "300", "height" => "300", "mime-type" => "image/jpeg" ); // кодируем обратно $serialize_array = serialize($data);
- Тема «Дописать руками в базу данных размер картинки» закрыта для новых ответов.