미디어를 가져 오지 못했습니다


14

[도구> 내보내기]로 XML 파일을 생성하고 다른 WordPress 웹 사이트에서 [도구> 가져 오기]를 사용하면 각 첨부 파일 유형에 대해 "미디어를 가져 오지 못했습니다"가 표시됩니다. 그리고로드하지 못한 이미지는 이전 서버의 핫 링크되어 이전 서버의 전송을 소비합니다 ...

그러나 http://codex.wordpress.org/Theme_Unit_Test 에서 "Unit Test"를 다운로드하면 이 문제가 존재하지 않습니다. 일부 이미지에는 여전히 "미디어 가져 오기 실패"가 있지만 30 개 이미지 중 5 개에 불과합니다. XML에는 자체 서버에 대한 URL이 있지만 어떻게 든 [도구> 가져 오기]는 미디어를 다운로드하고이 URL을 새 위치로 대체합니다 (더 이상 핫 링크되지 않음).

"미디어 가져 오기 실패"없이 제대로 작동하게하는 요령은 무엇입니까? 왜 "Unit Test"에도 "미디어 가져 오기 실패"메시지가 몇 개 있습니까?


가져 오는 서버가 이전 위치에서 파일을 가져와야하므로 파일이 이전 서버에 있는지 여부뿐만 아니라 새 서버가 파일을 가져올 수 있는지 확인해야합니다. 아웃 바운드 요청이 제한 될 수 있습니다. 다른 서버 나 로컬 호스트에서 가져 오려고 했습니까? 이것이 매우 현지화 된 문제 일 수 있습니다.
kraftner

1
WordPress 4.3.1 (아마도 이전) IMPORT_DEBUG부터는 true"미디어 가져 오기 실패"대신 의미있는 피드백을 받도록 정의 하고 설정할 수 있습니다 . 왜 이것이 기본 동작이 아닌지 상상할 수 없습니다. 날씨가 맞다면 문제를 좁히는 데 도움이 될 수 있습니다.
Mark

@ 어떤 파일에서 IMPORT_DEBUG옵션을 설정할 수 있는지
kimliv

2
@ kimliv : WordPress 설치 루트의 wp-config.php에 이것을 고정시키고 싶을 것입니다 : define ( 'IMPORT_DEBUG', true );.
Mark

죄송합니다 부딪를 들어, 같은 문제와 I가 작동하지 SSL했다으로 가져올 된 원래 사이트 있었고, xmlURL은 켜져 https편집, xml전환에 파일 httpshttp도움을 주었다.
Samuel Elh

답변:


12

WordPress 블로그를 단일 WordPress 설치에서 다른 도메인 이름이지만 동일한 IP를 가진 다중 사이트 설치로 옮길 때 매우 비슷한 문제가있었습니다. 소스 IP가 대상 IP와 동일한 경우
문제는 wp_http_validate_urlURL을 삭제 하는 기능 이라는 것을 알았습니다 . 이를 방지하고 소스 및 대상 IP가 일치하도록
필터 wp_http_validate_url를 추가 할 수 있습니다 .

add_filter( 'http_request_host_is_external', '__return_true' );

필터 후크에 대한 자세한 설명과 가져 오기 후에 필터 후크를 제거해야하는 이유는이 답변을 참조하십시오. /wordpress//a/123313/75573


이미지와 함께 게시물을 가져 오려고 5 시간 정도 걸렸는데 문제가 해결되었습니다.
Jonny

이 수정이 필요한 곳을 잘 모르겠습니다. 누군가 더 설명 할 수 있습니까?
ClairelyClaire 2

functions.php에 놓거나 플러그인에 넣을 수 있습니다. 나중에 필요에 따라 쉽게 켜고 끌 수 있습니다.
Merl

1

내보내기 파일을 생성 할 때 라이브 서버 또는 로컬 호스트에 있었습니까? 해당 웹 페이지에 여전히 액세스 할 수 있습니까? 미디어 가져 오기에 실패하면 XML에서 링크 된 이미지가 404로 표시됩니다.

XML 파일을 열고 이미지가 가리키는 위치를 확인하십시오. Theme Unit XML 파일을 열면 다음과 같은 줄이 나타납니다.

<wp:attachment_url>http://wpthemetestdata.files.wordpress.com/2008/06/canola2.jpg</wp:attachment_url>

해당 파일은 가져 오기가 매우 명확합니다. attachment_url 파일은 무엇을 말합니까?


1
"로드하지 못한 이미지는 이전 서버의 전송을 소비하는 이전 서버에서 핫 링크됩니다 ..."는 이미지가 404를 반환하지 않고 로컬 호스트에 있지 않지만 여전히 "미디어를 가져 오지 못했습니다"라는 메시지를 나타냅니다. ". 내는 <wp:attachment_url>말한다 example.com/2008/06/image.jpg 너무 example.com은 항상 접근 도메인입니다. 그렇기 때문에 이미지가 404를 생성하지 않더라도 분명히 작동하지 않습니다. 때로는 wpthemetestdata.files.wordpress.com 에서도 작동하지 않습니다 (30 개 중 최대 5 개의 임의 이미지가 실패 함).
Paul

알았어, 미안, 밤에이 시점에서 내 마음이 조금 타 버렸어 서버에 어떤 종류의 핫 링크 보호 기능이 있습니까?
명령적인 아이디어

1
아니요, 공개적으로 액세스 가능한 이미지가 있고 공개적으로 액세스 할 수없는 공개적으로 액세스 가능한 서버입니다. 그러나 일부 보호 기능이 있어도 WordPress의 서버는 때때로 같은 작업을 수행합니다. 이 수입업자가 단지 버그가 있다는 것을 의미합니까?
Paul

서버 또는 서버 중 하나가 눈에 띄게 짧은 시간 초과 값을 갖습니다. 나는 당신을 위해 아이디어가 신선합니다. XML이 Localhost로 올바르게 가져 옵니까? 그렇다면, 일종의 컨닝을 할 수 있습니다. 로컬로 가져 오기를 수행 한 다음 WP Migrate DB를 사용하고 결과를 복제하여 실행하십시오.
명령적인 아이디어

1

wordpress.com에서 wordpress.org로 미디어를 가져 오는 데 어려움을 겪고 있습니다. 모든 게시물을 가져올 수 있었지만 이미지는 여전히 이전 사이트에 연결되었습니다. 유일한 해결책은 게시물로 200 개가 넘는 큰 이미지를 수동으로 다운로드하고 업로드하는 것임을 깨달았을 때 거의 울었습니다.

일부 플러그인을 테스트 한 후 실제로 wordpress 미디어를 자동으로 가져 오는 플러그인을 찾았습니다. 믿을 수 없었지만 실제로 작동합니다. 우편으로 게시해야하지만 여전히 수동 다운로드 및 업로드보다 낫습니다. 관심있는 사람이 있다면 여기 링크 가 있습니다


1

사이트가 "비공개"로 설정되어 있지 않은지 확인하십시오.

Wordpress 블로그를 내 보내면 모든 텍스트 내용이 결과 XML 파일에 포함됩니다. 모든 바이너리 컨텐츠 (사진, 첨부 파일 등)는 기존 블로그에서 해당 위치를 가리키는 URL로 내보내집니다. 개인 Wordpress 블로그에서 가져올 때 여전히 모든 게시물 / 등을 가져올 수 있지만 모든 이미지 / 등이 실패하는 이유입니다.

커런트 (2017-06-19) 버전에서 설정을 변경해야하는 위치는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

관련 Wordpress 설명서 :

https://en.support.wordpress.com/settings/privacy-settings/

블로그 자체의 설정이 아니라 Wordpress.com 계정의 설정에서 수행해야합니다. 이는 잠재적 인 혼동 (및 좌절)의 또 다른 잠재적 지점입니다.


1

이 문제는 원격 / 로컬 사이트에서 특정 플러그인을 사용할 때 발생할 수 있습니다.

이상적으로는 내보내거나 가져 오기 전에 두 사이트에서 모든 플러그인을 비활성화 한 다음 프로세스가 완료된 후 다시 활성화하십시오.

모든 플러그인을 비활성화하지 않으려면 이미지 또는 이미지 처리에 영향을 미치는 플러그인을 비활성화하십시오. 가장 일반적인 유형은 아마도 이미지 최적화를 수행하는 것일 것입니다.

필자의 경우 로컬 사이트에서 EWWW Image Optimizer (권장 사항)를 활성화했으며이 오류가 발생했습니다. 비활성화하고 가져 오기를 성공적으로 실행 한 후 다시 활성화했습니다.


0

나는 같은 문제를 겪었고 몇 시간 동안 검색하고 테스트 한 결과 소스 서버가 cPanel에서 "핫 링크 보호"가 활성화되어 이미지 다운로드를 차단하고 있다는 것이 었습니다.


네가 옳아. 제 경우에는 .htaccess에서 핫 링크 보호를 구현했습니다. 다른 경우는 cPanel 또는 Cloudflare입니다.
John Doe

0

add_filter별도의 모듈을 만들지 않고 사용하고 싶지 않거나 통합하는 방법을 모릅니다. 이 작업을 수행하는 빠르고 편리한 방법이 있습니다.

이 파일을여십시오

vim ./wp-includes/http.php

행으로 이동 566하여 다음 코드 블록을 주석 처리하십시오.

if ( ! apply_filters( 'http_request_host_is_external', false, $host, $url ) )
  return false;

이 두 줄을 주석 처리하면 들어가서 다음 줄을 추가하십시오.

return true;

계속해서 파일을 저장하고 XML 파일을 업로드하여 다시 시도하십시오. 이제 모든 관련 컨텐츠를 다운로드하십시오. 주석 블록과 return 문을 제거하고 다시 가십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.