Очистка папки загрузок, структура базы данных библиотеки мультимедиа


10

Я занимаюсь обновлением и очисткой старого блога, который начался на Blogger.com, затем перешел на WordPress 2.1, 2.3 и сейчас 3.0. Изображения в постах разбросаны вокруг: большинство из них есть /wp-content/, но не все в /wp-content/uploads/или /wp-content/uploads/year/month/. Другие по-прежнему ссылаются на серверы изображений blogger.com. Я хочу объединить их все /wp-content/uploads/year/month/, что я считаю «правильным» местом? Это должно облегчить последующие обновления.

Каков наилучший способ сделать это? Я также хотел бы обновить метаданные, чтобы библиотека мультимедиа могла управлять ими всеми. Я не смог найти никакой документации по этому вопросу, поэтому извините, если я пропустил это, пожалуйста, укажите мне на это.

Конечно, я бы предоставил перенаправления из старых мест в новые. Каков наилучший способ сделать это? Шаблон 404.php, плагин? Я хотел бы добавить некоторые записи, чтобы мы могли найти ссылающиеся страницы и, возможно, исправить их.

(Этот вопрос первоначально задавался на форумах поддержки WordPress , но не получил там полезного ответа).


Вы ищете плагин, который делает эту работу?
Хакре

Ян? Есть ли отзывы по вашей проблеме? Вам не нравится ответ? Нет комментариев полезно?
Хакре

Я согласен, что какой-то медиа-редактор будет полезен. Что-то, что позволяет импортировать медиа из разных папок и быстро перемещать их в соответствии с некоторыми правилами. Я мог бы работать над этим на самом деле.
2010 г.

Ответы:


7

W3-Total Cache имеет функцию, которая сканирует все ваши сообщения и импортирует любые внешние изображения в медиа-библиотеку и изменяет пути к новому местоположению.

Смотрите скриншот

альтернативный текст


2

Правильное место - это текущая настройка, я бы сказал. Так что, если вы сейчас используете одну папку для загрузки (вместо подпапок лет / месяцев), перейдите с этой (может быть очень полной, но проще в сортировке). Так что просто переместите все файлы из подкаталогов года / месяца в каталог выгрузки и измените URL -Путь в базе данных, как правило, должны делать эту работу.

После того, как все в одной папке (и отсортировано), вы можете снова изменить дизайн папки и переместить файлы в правильный каталог с помощью скрипта PHP, который считывает дату из базы данных. Точно такой же сценарий должен снова принимать URL-пути.

Это что-то вроде того же сценария, который предложил Майк.

В настоящее время WP UI не поддерживает ручное перемещение или переименование файлов, поэтому вы привязаны к некоторому собственному коду. Что в любом случае имело бы смысл для партии.

Существующие и связанные плагины

  • Добавить с сервера (плагин Wordpress) - «Добавить с сервера» - это быстрый плагин, который позволяет импортировать файлы мультимедиа и файлы в менеджер загрузок WordPress из файловой системы веб-серверов.

1

@Jan Fabry: Вам, вероятно, понадобится рассмотреть каждый случай отдельно, т. Е. Размещенные в Blogger изображения и изображения вне wp-контента и т. Д.

Вот плагин для импорта из Blogger; некоторое время он не обновлялся, но все еще может работать или, по крайней мере, иметь код, который вы можете использовать:

Есть также старый плагин, который может работать, а может и не работать:

Кроме того, я думаю, вам просто нужно написать PHP-скрипт, который сканирует ваши файлы и сканирует ваши сообщения в поисках URL-адресов встроенных изображений, разрабатывает пересеченный список, а затем перемещает файлы и обновляет ссылку в сообщении. Или, может быть, вам повезет, и этот плагин все еще будет работать и сделает это за вас!

Удачи.


0

Возможно (и это только для будущих читателей - это старый вопрос), вы можете перечислить все 'post_type' => 'attachment' и начать отделяться оттуда. Я имею в виду выборку постов и сохранение разных мест в одном массиве. Затем разберитесь, чтобы получить представление о том, где ваши изображения лежат вокруг ...


1
@kaiser: Это может быть старый вопрос, но я все еще работаю над его частью, поэтому все предложения приветствуются! Я надеюсь записать то, что я закончил как ответ скоро.
Ян Фабри

@Jan: Полагаю, я бы вызвал все «post_type» => «attachment», а затем вызвал бы местоположение (если оно хранится где-то в query_vars), и если оно не существует в каком-либо предопределенном (сначала пустом) массиве, вставьте его в там. В результате я бы попробовал что-то с array_intersect или аналогичным, чтобы просто вернуть разные местоположения. Это всего лишь первые и быстрые и грубые мысли о том, как узнать, где материал распространяется. До сих пор я не получил ни малейшего понятия , что я сделал бы с результатом или перенаправлением ...
Кайзер

... Я предполагаю, что можно получить различные местоположения вложений, а затем переместить их и обновить местоположение в БД. Мне было бы наплевать на переадресацию. Пост знает об этом, когда БД знает об этом и кто действительно заботится об индексации пост-вложений. Вы бы предпочли, чтобы никто не делал прямые / горячие ссылки на ваши изображения (или вложения-шаблоны), а вместо этого ссылался на содержащий их пост. Лично я никогда не использовал шаблон вложения и даже не устанавливал ссылку (кроме лайтбоксов и т. П.) На вложение внутри поста.
Кайзер

@kaiser: в настоящее время я сначала создал перенаправления и переместил все «потерянные» изображения в /wp-content/uploads/moved/каталог. Таким образом, все сообщения, даже те, которые ссылаются на старые местоположения, будут продолжать работать, а остальные мои каталоги понятны (что было для меня самой большой проблемой: было очень непонятно, что принадлежало WordPress, а что нет). Сейчас я обновляю существующие вложения и добавляю изображения, которые еще не были добавлены как вложения.
Ян Фабри

@Jan: «Сейчас я обновляю существующие вложения и добавляю изображения, которые еще не были добавлены как вложения». За руку - по крупицам? Я не знаю это точно, но я думаю, что вам нужны только перенаправления, пока поисковые системы не знают о новом местоположении. Остальные должны полагаться на db-записи. Неправильно?
Кайзер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.