Поддержка Проблемы и решения преблема с переносом картинок в несколько папок

  • В папке /uploads за годы существования сайта накопилось более 25 тыс.файлов изображений. Все они были в одной общей папке, без сортировки по годам. Чтобы не грузить сервер большим количеством файлов, для новых постов решил включить настройку «помещать файлы в папки по месяцу и году», а для старых постов вручную рассортировать файлы изображений по папкам:
    /uploads/2017
    /uploads/2016
    /uploads/2015
    итд
    После этого в старых постах сменил пути к медиафайлам в БД, для каждого года:
    update asd_posts set post_content=REPLACE(post_content, '/uploads/', '/uploads/2006/') where YEAR(post_date)=2006

    update asd_posts set guid=REPLACE(guid, '/uploads/', '/uploads/2006/') where YEAR(post_date)=2006

    В старых постах пути сменились, но при отображении страницы поста или ленты постов миниатюры не видны. Если кликнуть на линк картинки — она открывается, ссылка в посте валидная, но в Библиотеке Медиафайлов все старые картинки по прежнему имеют старый URL вида /uploads/ххххх.jpg
    Как его сменить и где он хранится в БД я так и не понял.

    Пример здесь: http://www.asd.in.ua/archives/1188336296

    Спасибо за помощь.

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Yuri

    (@yube)

    Для аттачей в wp_postmeta есть записи с ключом _wp_attachment_metadata. Только в них нельзя инфу по-простому менять, потому что serialize (будь он неладен).

    То есть вариантов решить этот вопрос нет?
    Только сбросить старые картинки снова в корень uploads?

    Модератор Yuri

    (@yube)

    Почему сразу «нет»? Есть, но не такие простые, как хотелось бы.

    Благодарю за ответы.

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

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «преблема с переносом картинок в несколько папок» закрыта для новых ответов.