В зависимости от того, поставили ли вы галочку «Помещать загруженные мной файлы в папки по месяцу и году» в настройках 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
- В панели администрирования Настройки/WP Original Media Path
видим текущий путь до папки с медиафайлами:Включаем экспертный режим и прописываем новый путь:
После нажатия кнопки «Сохранить изменения» новая папка автоматически создастся в корневом каталоге …/public_html
В названии новой папки не используем русские и заглавные буквы.
Теперь при создании новых записей картинки будут загружаться в новую папку, а вот в старых записях остаются ссылки на картинки по старому пути. Поэтому переходим к следующему шагу.
- Копируем папку …/wp-content/uploads в корень сайта и переименовываем. Сделать это лучше с помощью штатного файлового менеджера хостинга:
В дальнейшем папку нужно будет только просто переименовать.
- Устанавливаем и активируем плагин Better Search Replace
с официального WordPress:И хотя автор WP Original Media Path рекомендует для замены в базе данных использовать плагин Search & Replace, у меня на больших базах он «вылетал». К тому же не может напрямую работать с базами, а только через импорт сохраненного файла в SQL-базу. Ну и по мелочи — нет поддержки русского языка. Так что мой выбор — Better Search Replace.
- Делаем замену URL в двух таблицах:
• wp_posts;
• wp_options.Обычно хватает одной базы: wp_posts, но в данной теме для описательной части рубрик использовали плагин (для возможности вставлять картинки в рубрики), поэтому подправляем еще и wp_options.
- Последним шагом — сбрасываем кэш.
с официального WordPress:
Деактивация
Плагин WP Original Media Path можно деактивировать, при этом настройки (и пути) не сбросятся. А вот после удаления плагина все сбросится до дефолтных установок — новые медиафайлы будут создаваться в папке
…/wp-content/uploads.
Старые медиафайлы при этом будут по старому пути и в старой папке.
Делаем руками
- Добавим в файл wp-config.php следующую строчку:
define('UPLOADS', 'new');
Не забудьте предварительно создать эту папку и дать ей права на запись.
- Переименуем папку контента с wp-content на new.
Для этого определим константы в том же wp-config.php:define('WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'].'/new'); define('WP_CONTENT_URL', 'http://'. $_SERVER['HTTP_HOST'] .'/new');
- Переименуем папку uploads в new.
- Выполним SQL запрос, который поменяет пути к изображениям. Сделать это можно при помощи phpMyAdmin, который должен быть доступен на любом хостинге.
- Выбираем нашу базу данных и переходим на на закладку SQL:
- Вбиваем наш запрос:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://site.ru/wp-content/uploads/','http://site.ru/new/')
и нажимаем кнопку «Вперед»:
- Теперь нужно заменить ссылки на картинки в коллекции медиафайлов внутри админпанели WordPress. Для этого исполняем следующий SQL-запрос:
UPDATE wp_posts SET guid = REPLACE(guid, 'http://site.ru/wp-content/uploads/','http://site.ru/new/')