Как изменить путь медиафайлов в WP

В зависимости от того, поставили ли вы галочку «Помещать загруженные мной файлы в папки по месяцу и году» в настройках WordPress:

Настройка медиафайлы WordPress

    ваши картинки (и прочие медиафайлы) будут расположены:
  • так site.ru/wp-content/uploads/2018/04/image.jpg
  • или так site.ru/wp-content/uploads/image.jpg
    Для изменения пути до медиафайлов например на site.ru/new/image.jpg есть два варианта:
  • прописать все руками и внести изменения в базу SQL (вариант для тех, кто привык все контролировать сам);
  • с помощью плагина.

С помощью плагина

    Устанавливаем и активируем плагин WP Original Media Path
    с официального депозитария WordPress:

    Плагин WP Original Media Path

  1. В панели администрирования Настройки/WP Original Media Path
    видим текущий путь до папки с медиафайлами:

    Прописываем путь WP Original Media Path

    Включаем экспертный режим и прописываем новый путь:

    Прописываем новую папку WP Original Media Path

    После нажатия кнопки «Сохранить изменения» новая папка автоматически создастся в корневом каталоге …/public_html

    В названии новой папки не используем русские и заглавные буквы.

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

  2. Копируем папку …/wp-content/uploads в корень сайта и переименовываем. Сделать это лучше с помощью штатного файлового менеджера хостинга:

    Копируем папку uploads

    В дальнейшем папку нужно будет только просто переименовать.

  3. Устанавливаем и активируем плагин Better Search Replace
    с официального депозитария WordPress:

    Плагин Better Search Replace

    И хотя автор WP Original Media Path рекомендует для замены в базе данных использовать плагин Search & Replace, у меня на больших базах он «вылетал». К тому же не может напрямую работать с базами, а только через импорт сохраненного файла в SQL-базу. Ну и по мелочи — нет поддержки русского языка. Так что мой выбор — Better Search Replace.

  4. Делаем замену URL в двух таблицах:

    • wp_posts;
    • wp_options.

    Обычно хватает одной базы: wp_posts, но в данной теме для описательной части рубрик использовали плагин (для возможности вставлять картинки в рубрики), поэтому подправляем еще и wp_options.

    Замена URL в Better Search Replace

  5. Последним шагом — сбрасываем кэш.

Деактивация

Плагин WP Original Media Path можно деактивировать, при этом настройки (и пути) не сбросятся. А вот после удаления плагина все сбросится до дефолтных установок — новые медиафайлы будут создаваться в папке
…/wp-content/uploads.
Старые медиафайлы при этом будут по старому пути и в старой папке.

Делаем руками

  1. Добавим в файл wp-config.php следующую строчку:
    define('UPLOADS', 'new');

    Не забудьте предварительно создать эту папку и дать ей права на запись.

  2. Переименуем папку контента с wp-content на new.
    Для этого определим константы в том же wp-config.php:

    define('WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'].'/new');
    define('WP_CONTENT_URL', 'http://'. $_SERVER['HTTP_HOST'] .'/new');
  3. Переименуем папку uploads в new.
  4. Выполним SQL запрос, который поменяет пути к изображениям. Сделать это можно при помощи phpMyAdmin, который должен быть доступен на любом хостинге.

    phpMyAdmin

  5. Выбираем нашу базу данных и переходим на на закладку SQL:

    Закладка SQL

  6. Вбиваем наш запрос:
    UPDATE wp_posts 
    SET post_content = REPLACE(post_content,
    'http://site.ru/wp-content/uploads/','http://site.ru/new/')

    и нажимаем кнопку «Вперед»:

    Выполнить SQL запрос

  7. Теперь нужно заменить ссылки на картинки в коллекции медиафайлов внутри админпанели WordPress. Для этого исполняем следующий SQL-запрос:
    UPDATE wp_posts 
    SET guid = REPLACE(guid,
    'http://site.ru/wp-content/uploads/','http://site.ru/new/')
Понравилась статья? Поделиться с друзьями:
После 50 лет
Добавить комментарий