Медиафайлы wordpress

Медиафайлы wordpress-блеск и нищета библиотеки

Медиафайлы wordpress - одно из самых неудачных решений разработчиков этого, вобщем-то, замечательного движка.

Хотя для большинства обычных блогеров вопросов по работе с медиафайлами не возникает, тем не менее, при более детальном знакомстве с возможностями библиотеки выясняется, что минусов гораздо больше чем плюсов.

Наиболее явно это проявляется при работе с WooCommerce. По-крайней мере, так произошло со мной.

Медиафайлы wordpress - заколдованное болото

Пока я просто писал статьи на свой блог, убогость библиотеки медиафайлов как то в глаза особо не бросалась. Да и вам, скорее всего, тоже пока непонятно о чём это я тут?

Все прелести этого функционала я познал когда пришлось делать интернет-магазины на движке WordPress, с его woocommerce.

Но прежде чем приступить к описанию своих мытарств, я напомню анекдот в тему:

Из дневника американского офицера. Вчера пили с русскими - чуть не умер. Сегодня русские позвали опохмеляться - лучше бы я умер вчера...

Так вот, столкнувшись с убогим и неповоротливым монстром в виде медиафайлов wordpress, я тоже пришёл к выводу, что лучше бы я умер вчера...

В чём собственно проблема

Работая с магазинами на движке OpenCart, я привык, что изображения товаров можно просто закинуть по FTP в определённую папку сервера, а сам товар загружается посредством CSV-файла, в котором просто указаны ссылки на эти изображения. Всё это у меня автоматизировано и проблем никаких не возникает.

Даже при том, что загружается или обновляется более 6000 товаров в примерно 20 категориях, каждая из которых содержит ещё до 14 подгрупп - на всё про всё уходит минут 5-7. Неплохо, правда?

По этому-же пути я и пошёл с магазином WosdPress. Вот этим самым магазином... По FTP загрузил изображения в папку wp-content/uploads сервера (именно оттуда движок и берёт все изображения, а опция в папку по году и месяцу у меня отключена), сделал CSV-файл с нужными ссылками и произвёл из него импорт товаров...

По итогу, в магазине все товары без изображений.

Как оказалось, медиафайлы wordpress - это некий программный комплекс и чтобы использовать загруженное изображение, его нужно зарегистрировать в библиотеке медиафайлов. А чтобы зарегистрировать, необходимо картинки загрузить через интерфейс медиафайлов... И всё это вручную!

Благо, товаров в этом магазине немного - около 800 позиций всего...

И начались пляски

Загрузить сразу всё нельзя. Приходится загружать по нескольку файлов за раз. От 8 до 12, в зависимости от «веса» изображений. Потратив кучу времени, загрузил. В магазине картинок так и нет...

Чтобы понять в чём дело, захожу в карточку товара и пробую вручную привязать изображения. Привязывается нормально, но замечаю, что имена файлов изображений не те... Т.е. допустим, файл называется 066-23.jpg и ссылка в CSV-файле именно на него, а в карточке товара в привязке 066-23-1.jpg.

Дело в том, что через библиотеку медиафайлов изображения-то загружается, но если такое уже есть в папке, то оно не заменяется, а вместо этого, к имени нового добавляется некий счётчик (-1, -2, -3...).

Попытки решить проблему плагинами

Есть неплохой плагин Bulk Media Register... Как раз для ситуации, когда загрузил по FTP и всё это добро надо зарегистрировать в библиотеке медиафайлов wordpress. Я установил его и запустил... Да, это работает, вот только к вновь зарегистрированным файлам, к их именам, всё также добавляется тот самый, пресловутый счётчик. Хотя в самой библиотеке он регистрируется под своим именем, но реально использует файл со счётчиком.

Тогда решаю, что надо удалить все изображения и через FTP, и как медиафайлы wordpress через интерфейс библиотеки. То ещё удовольствие, скажу я вам... Даже не смотря на то, что в библиотеке медиафайлов есть множественный выбор.

Даже способ удаления всех товаров из woocommerce, который я показывал в соответствующей статье, тут не поможет. Медиафайлы остаются...

Нет, конечно-же я пытался упростить себе задачу. Нашёл и установил ещё один плагин: Media Cleaner. Он как раз и предназначен для очистки библиотеки от неиспользуемых файлов, с последующей оптимизацией библиотеки медиафайлов. Предварительно я удалил все картинки через FTP и потом запустил плагин.

Это уже заключительный этап. Удаление после сканирования... Изначально было 80 страниц по 50 элементов в каждой, но видео я догадался снять, когда их, страниц, осталось уже всего 60...

Плагин мне понравился. Более подробней я расскажу о нём в одной из следующих статей.

Но видимо я предыдущими действиями уже столько нагородил, что после работы плагина в библиотеке осталось много пустых записей. Просто серые квадратики вместо изображений...

Медиафайлы wordpress
Медиафайлы wordpress

Тогда я решился на кардинальные меры. Через библиотеку медиафайлов вручную удалил всё, что там было. Контрольный выстрел - учистка папки через FTP. После чего, уже не знаю в который раз, ручками загрузил все картинки через библиотеку медиафайлов.

Обновил товары через CSV-файл и о чудо! Всё стало как надо... Но радость моя была недолгой...

Вторая часть мармезонского балета

Да, да... Шёл уже второй день моей возни и, когда я был готов довольно потирать руки, наши дизайнеры скинули мне новые варианты тех-же картинок...

Опять начинать всё сначала мне не хотелось, но я здраво (на мой измученный взгляд) рассудил, что раз изображения уже зарегистрированы в библиотеке медиафайлов, а фактически используются те, что лежат в папке на сервере, то мне достаточно будет всего-лишь залить новые файлы через FTP. Имена файлов при этом не меняются и всё должно быть нормально. Так я и сделал.

Хотелось как лучше, а получилось как всегда...

Медиафайлы wordpress преподнесли мне новую засаду.

При загрузке файлов через интерфейс библиотеки, wordpress автоматически создаёт ещё несколько копий основного файла, но с разными размерами, добавляя эти размеры к имени файла. А затем эти файлы используются в разных случаях, например, в качестве эскизов к тем же товарам woocommerce. А основной файл отображается лишь когда заходишь на страницу конкретного товара.

Таких копий, как минимум, три: миниатюра, средний размер и крупный. Это только базовые настройки. Но на уровне шаблона могут быть заданы и дополнительные размеры, в соответствии с вёрсткой шаблона. Например, на этом блоге шаблон добавляет ещё 5 размеров под свои нужды.

Другими словами, загружать опять надо всё через библиотеку медиафайлов, опять всё с самого начала!

На это потратил ещё почти пол-дня. Сделал, наконец! Всё нормально теперь... Было...

Загрузка изображений при помощи CSV-файла

Кто-то может сказать, мол, ну пораскинул бы мозгами, и не было бы всех этих мучений... Ну что на это ответить? Да раскинул я, причём так, что собрать теперь не могу...

И вот, теми мозгами, что у меня ещё остались я посмотрел в сторону csv, которым загружал товары в магазин. В структуре этого файла есть два поля, отвечающих за изображения: «Изображения» и «Внешний URL».

Изображения в CSV - как заполнять поля

В оба поля можно заполнять несколькими значениями через запятую. С полем «Внешний URL» всё понятно - если там есть ссылка на картинку, например:

https://ваш-домен/wp-content/uploads/wpallimport/files/ka060051.jpg

то по логике вещей в медиафайлы wordpress эта картинка должна загружаться с указанного ресурса с регистрацией в библиотеке.

Несколько по иному я воспринимал поле «Изображения». По идее, тут ничего не должно никуда загружаться, а просто использоваться указанный файл, при условии, что изображение лежит в wp-content/uploads/.

А на деле тут всё по другому. Если в этом поле файл указан с путём к нему:

https://ваш-домен/wp-content/uploads/ka060051.jpg

То файл, как и в первом случае, будет загружаться в библиотеку с добавлением счётчика к имени файла и массовым дублированием всех размеров со счётчиками-же... А вот если в поле «Изображения» просто имя файла:

ka060051.jpg

то только в этом случае будет использовано существующее изображение, если оно есть в папке сервера и зарегистрировано в библиотеке. Если нет, то ничего не будет использовано.

Только понял я это уже потом, когда удосужился, наконец, прочитать wordpress-овские доки по этому поводу.

А поначалу-то я действовал в соответствии со своей логикой (я же говорю - мозги далеко раскидал). Создал и загрузил CSV с заполненными обоими полями и в обоих были полные пути к файлам. А если учесть, что на один товар у меня по нескольку картинок, то, в районе обеда запустив импорт, я так и не дождался его завершения до окончания рабочего дня. Можете себе представить, сколько ненужного у меня загрузилось на сервер...

По итогу, уже на следующий день, я создал новые CSV, где поле «Внешний URL» вообще пустое, а в поле «Изображения» только имя файла (файлов через запятую) без путей к ним.

Такой CSV импортировался за пару минут...

Медиафайлы wordpress - блеск и нищета

Всё, что написано выше - это сокращённый вариант моих злоключений. Иначе бы вы заснули читая. Или всё-равно заснули?

Нищета...

Подытожим, вот на мой взгляд основные недостатки медиафайлов wordpress:

  • Процесс загрузки файлов абсолютно не приспособлен для множественной загрузки. Для блога это может быть и не критично, а вот для интернет-магазина со множеством товаров - отвратительно.
  • При повторной загрузке файла, существующий не заменяется, вместо этого новый переименовывается, хотя в библиотеке регистрируется с тем-же именем, но со ссылкой уже на файл с новым именем. Это один из основных недостатков!
  • При каждой загрузке на основе каждого изображения создаётся несколько дополнительных файлов с другими размерами. Зачем? Разве сложно в нужном месте менять отображаемый размер на необходимый при помощи CSS? Как это сделано, например, в OpenCart. Это тоже большой недостаток.
  • Отсутствует какой-либо функционал оптимизации и очистки библиотеки, а также избавления от ненужных и неиспользуемых файлов изображений. Такую оптимизацию можно делать только либо вручную, либо при помощи сторонних плагинов. В обоих случаях это долгий и кропотливый труд.

В результате, и без того слабо-управляемая библиотека медиафайлов wordpress сильно «распухает» и становится вообще неповоротливой, а огромное количество ненужных изображений накапливается на сервере, неоправданно «сжирая» свободное место вашего хостинга.

Блеск...

А где-же блеск, спросите вы? Но, боюсь, порадовать мне вас не чем. Да, в библиотеке есть возможность множественного выбора медиафайлов. Но это только для их удаления... Увы!

С другой стороны, с одиночным файлом работать может быть и удобно: можно откорректировать файл, что-то изменить в его настройках, удалить, наконец со всем приплодом... Но это только одиночный файл. Кроме того, многие обычно при вёрстке статьи, удаляют изображение именно из статьи, меняя его на другое. При этом, совершенно не задумываясь о том, что и на хостинге, и в базе библиотеки медиафайлов удалённый из статьи файл остаётся. Только теперь уже в виде вечного хлама, занимающего место.

Зато я получил бесценный опыт... 😀 

Подписывайтесь на мой канал в telegram - Медиафайлы wordpress-блеск и нищета библиотекиTelegram и будете первыми узнавать о новых статьях блога, а также увидите там много чего интересного...
Огни большого города https://obg.kz

Смотрите также

301 редирект с http на https

301 редирект с http на https, разные сервера – разные способы

Содержание301 редирект посредством .htaccess301 редирект с http на https на серверах NginxКоротко о попытке решить …

Проблемы с обновлением

Проблема с обновлением WordPress и плагинов

Проблема с обновлением WordPress и плагинов стала для меня полной неожиданностью. И пришла она, эта …

22 комментария

  1. "…  И опыт, сын ошибок трудных, И гений, парадоксов друг.." – оказывается все оценки происходят в сравнении. И это сказал А.С. и сделал вывод наш автор Александр в этой статье. Такие статьи разработчика – программиста дают идею понять обычному пользователю, какие изображения следует подбирать перед загрузкой, иначе,  касса впереди.

    • Спасибо, Андрей! Действительно, прав Александр Сергеевич – опыт приходит через ошибки. А я их тут понаделал столько… 

      Вообще, сам по себе интернет-магазин на WordPress мне нравится даже больше, чем на OpenCart, но вот с изображениями тут засада. Но зато я хоть свою программу подкорректировал, чтобы выдавала из нашей базы более правильные CSV-файлы для загрузки.

      И да, библиотека медиафайлов, по своему функционалу, производит удручающее впечатление.

  2. У меня тоже иногда бывают проблемы с загрузкой медиафайлов в статью. А копии файлов изображений, я каждый раз после публикации очередной статьи, удаляю вручную с хостинга. Оставляю только миниатюры и оринальный размер. Не удобно это, время тратится.

  3. Титанический труд проделан!!! Я полный профан в этих вопросах,  поскольку даже не вникаю что там  и куда помещается. Да и задач таких не возникает. Но что изображения быстро съедают купленный объем на хостинге – это факт. Сжимай – не сжимай. Теперь буду знать, что есть уязвимые места у Вордпресс поскольку с другими и не знакома.

    Иначе бы вы заснули читая. Или всё-равно заснули?

    Ага, как раз ко сну))) 

    • Тут странен сам подход разработчиков к этой системе. Нет, понятно, что в данном случае под медиафайлами подразумевается как изображения, так и аудио, видео, документы, электронные таблицы и даже архивы…

      Но только вот с изображениями очень криво и нецелесообразно сделано. Действительно, место на хостинге, с таким подходом, исчезает очень быстро.

      В одной из следующих статей я покажу плагин, который позволит хоть как-то с этой вакханалией бороться…

      Ага, как раз ко сну))) 

      Спокойной ночи!  

  4. Александр, почему именно на Вордпресс при таком опыте работы с Опенкарт? Причина в шаблонах? Спрашиваю потому, что сам на woocommerce поглядываю уже больше года. Вроде зарекся уже с онлайн-магазинами иметь дело. Но для работы не помешает простой магазин-витрина, так сказать. Престашоп, который мне более или менее знаком и понятен, для таких целей избыточен, да и нормальных бесплатных шаблонов нет под него, и ковыряться в коде приходилось много. Не думал, что с Вордпрессом такой геморрой при создании магазина. А как же обновления товара – неужели каждый раз вручную?

    • Магазин на WordPress уже давно захотело моё руководство. Они насмотрелись всяких тренингов, где им парили, что WordPress поисковики лучше воспринимают. Имеется в виду именно магазин на этом движке. Я упирался около 2-х лет в общей сложности. За это время woocommerce далеко шагнул и хорошо развился. Время от времени я тестировал на нашем нерабочем в то время сайте. Потом мне понравилось самому и я решился.

      В общем и целом woocommerce в сочетании с общей концепцией WordPress и его возможностями мне нравится. Хорошие возможности, более лёгкая настройка, по сравнению с тем-же OpenCart, плагинов всевозможных немеряно, в том числе и бесплатных, аналогично и с шаблонами. Интеграция с Битрикс и т.д… Причём всё это постоянно совершенствуется и улучшается.

      Единственная засада с изображениями получилась. Причём, у меня это не первый магазин на woocommerc… Но в том, другом, единожды загрузил картинки и всё. Их не надо было обновлять и проблем не возникло вообще. А вот этот, о котором писал, более динамичный. 

      Если у тебя товаров немного, то вручную всё сопоставить (я про картинки товаров) сложности нет никакой. А вот, если их много, несколько сот, то всё через библиотеку медиафайлов надо загружать, удалять и так далее. Автоматизации – ноль. Если надо заменить сколько-то картинок, то сначала их удалить через медиафайлы, а затем загрузить тем же способом новые. Да ещё и убедиться, что не слетела привязка к товарам. В моём случае, после манипуляций с изображениями, достаточно загрузить CSV-файл, который создаётся в моей-же программе, это, кроме данных по товарам (остатки, цены и т.д.) перепривяжет и изображения. Кстати, в том магазине, о котором писал, их, изображений, по три на каждый товар (по крайней мере в основной группе товара – литые ёлки)…

      Если изображения менять не надо, а это действительно очень нечастая операция, то всё остальное просто замечательно.

      Так, что если всё-же будешь делать магазин на woocommerce, то сначала правильно загрузи изображения, а все остальные обновления товара, не затрагивающие картинки, проблем не вызывают.

      А вообще, есть плагин WP All Import Pro, который вроде правильно подгружает и привязывает изображения, как загруженные по FTP, так и со стороннего ресурса. На некоторые сайты я с его помощью выгружал – всё нормально, но не очень быстро. А тут 800 товаров всего, думал, что встроенным загрузчиком быстрее обойдусь… Я ещё поиграюсь с этими возможностями… 

      • Загрузка через CSV-файл – первое, что напрашивается. Особенное, если прежде имел дело с обслуживанием интернет-магазина. В Престашоп CSV подгружался довольно быстро. У меня была уверенность, кстати, что и в Вордпресс эта схема нормально работает…

        До магазина на woocommerce я почти созрел. Останавливают только лень и сомнение в том, что это кому-то нужно ) За дельные советы спасибо, приму к сведению.

        • Если в CSV-файле, в поле "Изображение" только имя файла без пути, то загружается очень даже шустро. Это в случае, когда сами изображения уже загружены, а CSV только привязывает к ним товары.

          Во всём остальном, Woocommerce мне очень нравится.

  5. Саща, привет! Круто ты поработал, главное что пришел к нужному результату, а то что через тернии так это у нас в крови. Да, мозги собирай, нечего ими раскидываться. 

    p.s. Легко бывает только в сказке. Так что удачи!

     

    • Привет! Да нет, не круто, на самом деле… Было бы круто, если бы всё получилось, как хотел. А так… Ещё решать и решать эту систему…

      Скоро сказка сказывается, да не скоро дело делается… 

  6. Это сколько надо иметь нервов, чтоб несколько раз по 1000 картинок загружать вручную. Это мне напомнило время в начале создания своего блога, мог часами сидеть у компа и разбираться в этих кодах, когда возникали проблемы с сайтом. Сейчас же нет никакого желания вникать в проблемы и тратить на это время, проще фрилансерам заплатить.

    • Я вообще противник любого фриланса на наших сайтах. Хотя, без этого не обходится. Да и свои мытарства я описал только с целью показа убогости библиотеки медиафайлов. Кстати, после этой всей эпопеи, дизайнеры скинули мне 28 обновлённых картинок…  

      С учётом предыдущего опыта, потратил около получаса… 

  7. Ой, мне, как "чайнику" со стажем весь этот процесс очистки библиотеки от неиспользуемых файлов, тем более вручную, представляется некой китайской грамотой.

    • Елена, для меня это вообще пока вопрос нерешённый. Вот сейчас грядёт массовое обновление изображений в этом магазине и опять всё придётся ручками делать… Сначала всё удалить, потом всё загрузить, а потом сверху CSV-файл наложить. Веселуха, одним словом…

  8. Да уж, проблем немало) При написании статей на свой блог не сталкиваюсь с таким, а с интернет-магазинами не работал. Поэтому меня всё устраивает и в таком виде.

    • Ну да, для блога, когда с каждой картинкой работаешь индивидуально, проблем практически нет. А вот с массовой обработкой изображений – совсем другой балет получается…

  9. Я магазин не устанавливала, мотому на медиафайлы в WordPress не сержусь. А вот разные размеры картинок в библиотеку у меня давно не загружаются, благодаря простым настройкам.

    • Ксенья Юрьевна, спасибо за подсказку. Эту фишку я знаю, вот только практически не применял. Для блога это не критично, а вот для интернет-магазина… Платный шаблон содержит в себе функционал, который создаёт еще несколько своих размеров изображений под свои нужды. Можно, конечно, влезть в код и убрать, но тогда сам магазин будет выглядеть не так, как задумано…

      Кстати, на этом блоге тоже шаблон платный и он тоже задаёт свои дополнительные размеры. Но пожалуй, в настройках попробую выставить все размеры в ноль. Всё поменьше будет копий…

  10. Пройдите по ссылке в предшествующем комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Ясогласен с политикой конфиденциальности сайта и пользовательским соглашением