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

  • Странная ситуация. Сменил домен. Все работает. Миниатюры записей отображаются нормально, но вот картинки в самой статье почему то нет. В админке в разделе мультимедиа все картинки на месте и отображаются и открываются по ссылке.

    Если нажать правой кнопкой и выбрать «открыть картинку в новом окне»

    то получаю 404 ошибку и ссылку не привильного вида

    http://site.net/category/site.net/wp-content/uploads/2012/11/foto-200×200.jpeg

    как видите, идет какое-то дублирование. где копать надо, подскажите пожалуйста.

Просмотр 14 ответов — с 1 по 14 (всего 14)
  • а картинки постов вставлялись в редакторе? или бралась из миниатюры? если вставлялась, то, может, дело в относительных путях к картинке и в наличии\отсутствии слэша в начале адреса. у меня такое бывало. в любом случае, это можно исправить sql-инъекцией (заменить http://site.net/category/site.net на http://site.net/category), мне кажется.

    да, вставлялись в редакторе

    как правильно прописать команду?

    сначала надо убедиться, что картинки действительно лежат по адресу типа
    http://site.net/category/wp-content/uploads/2012/11/foto-200×200.jpeg

    теперь надо зайти в БД через phpMyAdmin и на вкладке SQL выполнить команду вида:
    UPDATE table SET field = REPLACE(field, 'старое слово', 'на новое слово');
    где table — название таблицы (в твоем случае это будет wp_posts), а field — поле, в котором менять (в твоем случае это будет post_content).

    то есть, пишешь
    UPDATE wp_posts SET post_content = REPLACE(post_content, 'site.net/category/site.net', 'site.net/category');
    и нажимаешь GO.

    но перед этим ты ОБЯЗАТЕЛЬНО должен сделать бэкап БД. желательно еще и бэкап из-под WP.

    еще это можно сделать через functions.php, но я не помню, как именно.

    Перепроверил, по такому адресу
    http://site.net/category/wp-content/uploads/2012/11/foto-200×200.jpeg
    НЕ грузится

    По адресу без категории грузится
    http://site.net/wp-content/uploads/2012/11/foto-200×200.jpeg

    правильный вариант ссылки тот по которому не грузится

    как скорректировать правильно sql команду?

    давай уточним. как надо? так:
    http://site.net/wp-content/uploads/2012/11/foto-200×200.jpeg
    ?

    да, так

    но вот посмотрел сам это поле в базе и там такой адрес
    src=»site.net/wp-content/uploads/2012/11/foto-200×200.jpeg»

    как и в самой записи, если редактировать статью через админку… что-то добавляет его, а что…

    проклятье, помоему дело вот в чем

    src=»site.net/wp-content/uploads/2012/11/foto-200×200.jpeg»

    нету вначале http://

    создал статью, вставил картинку а там адрес с http и все отображается

    upd:добавил в ручную и все отображается в статьях

    теперь надо везде сразу заменить как-то….

    вот, я же говорил, что дело в путях. надо чтобы было
    wp-content/uploads/2012/11/foto-200×200.jpeg
    или
    /wp-content/uploads/2012/11/foto-200×200.jpeg
    я все время путаю. исправь для начала в одном посте это значение. выясни, при каком работает и тогда можно делать нужный запрос.

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

    исправил сделал так
    src=»http://site.net/wp-content/uploads/2012/11/foto-200×200.jpeg»

    как блог добавляет, и все отображается

    как теперь это http:// везде проставить?

    Сделал

    UPDATE ob_posts SET post_content = REPLACE(post_content, ‘site.net’, ‘http://site.net’);

    Аминь! 🙂

    Вам отдельное спасибо, что указали направление, и потратили свое время 🙂

    как я сказал выше, если ты везде заменишь на полный путь, будут проблемы в будущем. по уму тебе надо заменить все
    site.net/wp-content/uploads/
    на
    /wp-content/uploads/
    но я не уверен в нужности слэша в начале. это нужно проверить методом тыка.

    если хочешь полные пути, тогда запрос будет такой:
    UPDATE wp_posts SET post_content = REPLACE(post_content, 'site.net/wp-content/uploads/', 'http://site.net/wp-content/uploads/');

    но это некруто.

    не забудь про бэкап перед инъекцией, я могу что-то напутать.

    от такой замены могут вылезть ошибки, кстати. например, если в каком-то посте был указан адрес http://www.site.net, то теперь он будет выглядеть как www.http://site.net
    🙂
    надеюсь, не вылезет.
    рад был помочь.

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