[WordPress] Старый ссылки в медиа файлах

KM
На сайте с 11.08.2011
Offline
103
1111

Есть сайт, у него был домен site.com. Потом домен изменился на supersite.com, но у файлов (фотографиях) в библиотеке остался адрес старый, пример:

http://site.com/wp-content/uploads/2012/05/fotka.jpg

А у вновь загруженных файлов, с новым доменом http://supersite.com/wp-content/uploads/2012/05/fotka2.jpg

Это так называемые «постоянные ссылки на файлы»

При заходе в редактирование этой фотографии её адрес изменить нельзя, в БД я тоже не нашел, где хранится данная информация. Может, кто-то знает как не перезагружая фотки изменить их ссылки в библиотеке?

---------- Post added 20-01-2013 at 17:38 ----------

Оказывается, файлы находятся в таблицы posts как отдельные посты.

Как можно быстро во всех файлах типа jpeg заменить их ссылку?

arkadiy_a
На сайте с 11.06.2008
Offline
82
#1
KaMaToZzz:
Оказывается, файлы находятся в таблицы posts как отдельные посты.
Как можно быстро во всех файлах типа jpeg заменить их ссылку?

Если база не гигантская то так.

Экспортните базу через phpmyadmin, затем в notepad++ сделайте автозамену:

на Импортируйте базу обратно через phpmyadmin.

Профит.

SeVlad
На сайте с 03.11.2008
Offline
1609
#2
KaMaToZzz:
При заходе в редактирование этой фотографии её адрес изменить нельзя

ВП 3,5?

KaMaToZzz:
в БД я тоже не нашел, где хранится данная информация

в wp_postmeta.

Способ, предложенный arkadiy_a, может помочь, но тоже чревато последствиями.

В таблице хранятся серализированные данные и если изменить из часть - возможны проблемы.

Я как-то видел скрипт исправляющий эти сериалы, но сходу не найду. Если кто найдет - плз поделиться в топике.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
EA
На сайте с 15.06.2006
Offline
70
#3

без проблем сделал на днях импорт/экспорт с заменой через phpmyadmin таблицы wp_postmeta, никаких последствий

SeVlad
На сайте с 03.11.2008
Offline
1609
#4
e-art:
без проблем сделал на днях импорт/экспорт с заменой через phpmyadmin таблицы wp_postmeta, никаких последствий

Никто не гарантировал "последствий". Но они могут быть. Особенно с 3,5.

EA
На сайте с 15.06.2006
Offline
70
#5
SeVlad:
Никто не гарантировал "последствий". Но они могут быть. Особенно с 3,5.

на 3.5 перенес, и поставил один плагин, который начал выдавать ошибки из-за неправильных путей. до этого там вообще стоял wp 3.1.* или вроде того

и все прошло ок

отличие только такое: изначально там стоял wp совсем древний и в wp_postmeta он писал не url, а путь на сервере (типа_wp_attached_file /home/hosts/***/***/htdocs/wp-content/uploads/2008/11/***.jpg). у меня сменилась папка расположения сайта. оставил так же путь, но правильный, и все работает

посмотрел, сейчас сам wp все записывает без урлов, например _wp_attached_file 2013/01/***.jpg

но некоторые плагины пишут с доменом: _video_thumbnail http://***.ru/wp-content/uploads/2013/01/***.jpg

SeVlad
На сайте с 03.11.2008
Offline
1609
#6
e-art:
отличие только такое:

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

Опять же - далеко не факт. Я сотни раз ВП переносил (за последние несколько лет) - всегда всё было ОК. Хотя и читал о проблемах у других из-за сериалов. И вот после обновления на 3,5 (даже не смены домена!) одного клиентского сайта (вообще с 2,8,4) - отказала медиатека (не напрочь, но проблема не малая). А там, на минуточку, под 2к постов+страниц со с множеством вложенных картинок + отдельно некстген. Пока не победил :(, но в закромах надыбал такой скриптик для переноса на новый домен (сам не юзал)

<?php
@ini_set('max_execution_time',0);
@ini_set('memory_limit', '128M');
@ignore_user_abort(1);
include_once("/путь_к_конфигу_WP/wp-config.php");
$dbl = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die ("Ошибка подключения к базе данных");
@mysql_select_db(DB_NAME) or die ("Ошибка mysql_select_db");
@mysql_query("SET NAMES ". DB_CHARSET);
echo "Конвертирование базы <br />\n";
mysql_query("UPDATE wp_options SET option_value='НОВЫЙ_ДОМЕН_КУДА_ПЕРЕЗЖАЕМ' WHERE blog_id=0 AND option_name='siteurl'");
mysql_query("UPDATE wp_options SET option_value='НОВЫЙ_ДОМЕН_КУДА_ПЕРЕЗЖАЕМ' WHERE blog_id=0 AND option_name='home'");
$sqlab = mysql_query("SELECT post_content,guid,id FROM wp_posts");
$i = 0;
while($row = mysql_fetch_array($sqlab))
{
$out = ereg_replace('http://СТАРЫЙ_ДОМЕН\.ТОЧКИ_ЗА_ЭСКЕЙПИТЬ\.ru', '', $row['post_content']);
if ( strlen($out) != strlen($row['post_content']) ) {
mysql_query("UPDATE wp_posts SET post_content = '".$out."' WHERE id=".$row['id']);
$i++;
}
$out = ereg_replace('СТАРЫЙ_ДОМЕН\.ТОЧКИ_ЗА_ЭСКЕЙПИТЬ\.ru', '', $row['guid']);
if ( strlen($out) != strlen($row['guid']) ) {
mysql_query("UPDATE wp_posts SET guid = '".$out."' WHERE id=".$row['id']);
$i++;
}
}
unset($sqlab,$out,$row);
echo "База сконвертированна, выполнено $i запросов<br>\n";
?>

И сюда по всему у ТСа похожая проблема:

KaMaToZzz:
При заходе в редактирование этой фотографии её адрес изменить нельзя,

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий