В настоящее время я работаю над импортом блога MovableType в WordPress. В блоге несколько тысяч постов, и с каждым постом связано изображение.
Файл экспорта содержит ссылки на каждое изображение следующим образом (и как и ожидалось):
<img src="http://domain/path/to/image">
У меня есть все изображения, и я переписал все ссылки в файле экспорта, чтобы использовать новое (локальное) местоположение. Однако процесс импорта WordPress на самом деле не создает вложений к сообщению, что мне нужно.
Итак, как лучше всего это сделать? Прямо сейчас я думаю об итерации набора сообщений, анализе любых URL-адресов изображений и создании новых сообщений:
- post_parent = фактическое сообщение
- post_type = вложение
Вопросы
-
Является ли
post_guid
ссылка на местоположение изображения? Или путь к изображению хранится где-то еще? -
Где находится избранное изображение?
-
Это лучший способ сделать это?
[Я пытался использовать плагин cache-image, но он не соответствует количеству постов/изображений]
Ответы:
$post->guid — это запись в сообщении, содержащая URL-адрес вашего вложения.
избранное изображение сохраняется как метаданные сообщения, поэтому используйте
update_post_meta()
его, если у вас есть идентификатор вложения:Это много работы для нескольких тысяч сообщений, и любой способ, который вы выберете, вызовет у вас некоторую «боль», но это кажется разумным способом достижения этого.
заметьте для себя, что wp_insert_attachment() лучше, чем пытаться добавить данные поля вручную
@anu: 🙂 это правда!!! 🙂
еще лучше — media_handle_upload() — отличный пост о том, как его использовать от @goldenapples
довольно поздно, но это тоже может быть полезно: wpscale.com/…