WordPress как на ладони
WordCamp Saint Petersburg 2018 wordpress jino

[РЕШЕНО] Массовое переименование имен файлов (картинок)

Сайт галерея. Во всех именах файлов дописан URL сайта по типу
машинка_site.ru_.jpg
а нужно
машинка_site.com_.jpg

Есть желание сменить домен как массово поменять имена файлов? может кто сталкивался?
В базе данных думаю поменяю или через sql запрос или notepad++ - до этой стадии ещё не дошел.

Вводная

  • К каждому загруженному файлу добавляется имя домена по принцыпу моя-картинка_site.tk_.jpg (это своеобразный костыль для хотлинка)

Задача

  • переехать с домена .TK на домен .ORG
  • все файлы с URL сайт должны преобрести значения нового домена
  • все файлы переедут на новый хостинг (более 200 000)

Решение

Решил описать свой способ решения - Решение ТОПОРНОЕ!

1.0 Скачивание исходников, базы данных и медиа файлов
1.1 Если архив TAR - он запакован несколько раз, в помощь пробный период программы WINZIP или другие

2.0 Работа с файлами uploads - папок не много так как по годам и по месецам разбиты
2.1 Нужна программа TOTAL COMMANDER
2.2 открываем нужную директорию с файлами, выбираем все (CTRL+ALT), потом нажимаем (CTRL+M), в открытом окне ничего не меняем.
2.3 Напротив правой руки, вверху в ячейках "Поиск и замена" туда вводим что на что заменить - ниже сразу идет предосмотр новых имен
2.4 Определившись с именами, нажимаем выполнить
2.5 Так по аналогии с другими файлами

3.0 Вернуть назад файлы поможет 7ZIP - запаковав файлы в zip архив

4.0 Переносим файлы и импортируем BD - на новый сервер

5.0 Работа с базой
5.1 Изменения постоянных ссылок в БД
5.2 Открываем phpmyadmin с нашей базой, выбираем базу , выбираем ячейку SQL - там вставляем команды смены домена, подставляем свои домены, запрос можно попробовать ввести несколько раз с изменением http и https (у меня сайт часто ездил и много разнообразия в БД)

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://test.ru', 'http://test.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://test.ru', 'http://test.com');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://test.ru','http://test.com');
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://test.ru', 'http://test.com');
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://test.ru','http://test.com');
UPDATE wp_posts SET guid = REPLACE (guid, 'http://test.ru', 'http://test.com') WHERE post_type = 'attachment';

5.2 Изменение - замена имен файлов в базе
5.3 Можем выполнить запрос на поиск нужных имен - открываем поиск, выбираем все, вносим имя какого нибудь файла со сатрым именем, в моем случае, возьмем "моя-картинка_site.tk_.jpg"
5.4 Через поиск можно определить в каких таблицах хранятся имена, и их нужно отредактировать ещё одним запросом, в моем случае это
wp_postmeta и wp_posts (могут попадаться таблицы плагинов - в моем случае таблица плагина динамическая и она сама чистится 1 раз в сутки)
5.5 Выполнил SQL запрос

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, '_site.tk_', '_site.org_')
UPDATE wp_posts SET guid = REPLACE (guid, '_site.tk_', '_site.org_')  

(когда я определялся с надписью умудрился записать в БД несколько разных URL
_site.tk_
site.tk__
--site.tk--
SITE.TK
и по этому повторил процедуру замены несколько раз )

5.6 Перепроверил ещё раз в поиске по ячейкам в БД - старый домен - повторил процедуру замены

Заметки к вопросу:
Kama 19 дней назад

Подправил немного текст (вопрос сюда перенес, тот вопрос будет удален...). Вообще надо был в том вопросе и решение дописать.

Kama 19 дней назад

По процедуре, молодец, работяга smile Правда я думаю можно было прям на хостинге через SSH запросом это сделать. Или через PHP: через glob() сканируем имена файлов, потом через rename() переименовываем...

kolshix 19 дней назад

По поводу выше сказанного, я бы закипел, и так много лишнего приходится осваиваивать , а тут ещё и ещё -
сейчас в планах mainWP настроить - он умеет управлять несколькими сайтами, а главное постить сразу на разные сайты , но не умеет делать медиа файлы привязанными (они сразу unattachet) b не умеет таксономии кастомные передавать , а только родные 2 передает, вот и ломаю голову как допелить

anseme 17 дней назад

А мне до сих пор не понятна причина переименования файлов... это же как там вордпресс так написан что ему важно как файлы называются в зависимости от домена...

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

kolshix 17 дней назад

причина бональна - сайт галерея
Сейчас появились авто генераторы галерей - которые парсят сайты и всевозможные описания и потом создают у себя динамические страницы с моими описаниями и ALT - я более 50 доменов хотлинков насчитал у себя .
Гугл определяет что картинки не мои а этмх парсеров - потеря трафика больше 30% а то и более.
Но гугл так же анализипует имена файлов, и даже имеет значеие как написан файл - этим я поднимаю PR - своего.
Обычный запрет хотлинка не поможет, парсеры создают кешированные изображения.
Короче много всякого Г...
А я просто решил поменять домен ТК и всего - старый сайт будет и дальше работать.

1
kolshix
230
20 дней назад

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация