Поддержка Проблемы и решения Массовая замена ссылок на изображение записи

  • Решено georgmann

    (@georgmann)


    Здравствуйте.
    Вначале в медиа настойках WP было указано, чтобы «Помещать загруженные мной файлы в папки по месяцу и году.»
    Естественно по мере публикации постов, в каждом из которых указано изображение записи, загружённые картинки распределялись соответственно году и месяцу в разные каталоги.
    На сегодня эту опцию я отключил и картинки новых постов помещаются в каталог /uploads/.
    Но мне также необходимо все ранее загруженные картинки тоже переместить в один общий каталог /uploads/.
    Каким образом можно массово «прописать/указать» новые пути к картинкам для изображения записи каждого поста. По сути название файлов jpg остаётся прежним, но к примеру нужно вместо этого пути:
    http://mysite.com/wp-content/uploads/2019/01/***.jpg
    указать этот:
    http://mysite.com/wp-content/uploads/***.jpg
    К сожалению плагин Search Regex с данной задачей не справляется.
    Спасибо за помощь.
    P.S. Не судите строго, если есть ошибки в терминологии. Надеюсь суть вопроса понятна. 🙂

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • O

    (@perdyllo)

    Но мне также необходимо все ранее загруженные картинки тоже переместить в один общий каталог /uploads/.

    Вы наверное удивитесь, но, без обиды, подобная глупая затея не одному Вам в голову пришла. Уже были прецеденты https://ru.wordpress.org/support/topic/%D0%BA%D0%B0%D0%BA-%D1%81%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D0%B8%D0%B7%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B2-%D0%BE%D0%B4%D0%BD%D1%83-%D0%BF%D0%B0%D0%BF%D0%BA/#post-314194

    плагин Search Regex

    Вы хоть смотрите что устанавливаете http://joxi.ru/vAWzvB5t1v3RL2?d=1

    • Ответ изменён 5 лет назад пользователем O.
    • Ответ изменён 5 лет назад пользователем O.
    • Ответ изменён 5 лет назад пользователем O.

    Вы хоть смотрите что устанавливаете

    Плагин отличный, но не для таких задач.

    (Я вообще не уверен, что подобная замена путей в базе ничего не поломает. А тк затея сама по себе глупая, а во многих случаях даже опасная, то и нет никакого интереса её решать)

    Автор georgmann

    (@georgmann)

    Плагин отличный

    Да, мне этот плагин понравился.

    замена путей в базе ничего не поломает

    Попробовал поработать с базой — выгрузил базу в SQL, подправил пути в notepad++, но это не помогло.
    Если смотреть на данный вопрос с чисто технической точки зрения, то пока ни через SQL запросы, ни редактирование файла базы не дают нужного результата.
    Возможно и нету метода массовой замены путей для изображения записи.

    выгрузил базу в SQL, подправил пути в notepad++, но это не помогло.

    Этим Вы поломали базу! Верните из бекапа.

    Возможно и нету метода массовой замены путей для изображения записи.

    У ВП есть АПИ. И именно его нужно использовать, а не лазить в базу грязными руками.

    Автор georgmann

    (@georgmann)

    Этим Вы поломали базу!

    Спасибо за беспокойство. Конечно я всё вернул из бекапа.

    У ВП есть АПИ

    Спасибо, но мне пока что это ни о чём не говорит — нужно вникать. 🙂
    Кстати на cyberforum.ru мне предложили вот такой вариант:

    <?php
    require_once(dirname(__FILE__)."/wp-load.php");
    $data = $wpdb->get_results("
        SELECT
            b.post_id
        FROM
            {$wpdb->prefix}postmeta a
            JOIN {$wpdb->prefix}postmeta b ON b.post_id = a.meta_value
        WHERE
            a.meta_key = '_thumbnail_id'
            AND b.meta_key = '_wp_attachment_metadata'"
    );
    foreach( $data as $one ) {
        $meta = wp_get_attachment_metadata($one->post_id);
        if ( preg_match( '/\//', $meta['file'] ) ) {
            echo $meta['file'] . " -> ";
            $meta['file'] = mb_substr( $meta['file'], 8 );
            echo $meta['file'];
            if ( wp_update_attachment_metadata( $one->post_id, $meta ) ) {
                echo " updated";
            } else {
                echo " failed";
            }
        }
    }
    ?>

    Что вы думаете об этом?

    • Ответ изменён 5 лет назад пользователем georgmann.
    • Ответ изменён 5 лет назад пользователем georgmann.
    • Ответ изменён 5 лет назад пользователем georgmann.
    O

    (@perdyllo)

    Что вы думаете об этом?

    Откройте секрет — ради чего вы всё это затеяли? Тогда может и ответов будет больше.

    Что вы думаете об этом?

    Если вопрос мне, то я выше уже говорил:

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

    Автор georgmann

    (@georgmann)

    Откройте секрет

    затея сама по себе глупая

    Всё, каюсь! Пришёл к выводу что опция Помещать загруженные мной файлы в папки по месяцу и году — это очень хорошо. Так, больше никаких экспериментов в этой области! 🙂
    Всем спасибо за терпение и помощь, особенно @sevlad.
    Век живи — век учись! 🙂
    P.S. Извините за отнятое время.

    • Ответ изменён 5 лет назад пользователем georgmann.
Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Массовая замена ссылок на изображение записи» закрыта для новых ответов.