Không thể nhập phương tiện


14

Khi tôi tạo tệp XML bằng [Công cụ> Xuất] và sử dụng [Công cụ> Nhập] trên một trang web WordPress khác, tôi nhận được "Không thể nhập Phương tiện" cho mỗi loại bài đăng đính kèm. Và hình ảnh không tải được liên kết nóng từ máy chủ trước đó tiêu thụ việc chuyển giao máy chủ trước đó ...

Nhưng khi tôi tải xuống "Bài kiểm tra đơn vị" từ http://codex.wordpress.org/Theme_Unit_Test thì vấn đề này không tồn tại. Một số hình ảnh vẫn có "Không thể nhập phương tiện" nhưng nó chỉ giống như 5 trên 30 hình ảnh. Họ có URL đến máy chủ của riêng họ trong XML nhưng bằng cách nào đó [Công cụ> Nhập] quản lý để tải xuống phương tiện của họ và thay thế các URL này bằng các vị trí mới (nó không còn được liên kết nóng nữa).

Bí quyết nào để làm cho nó hoạt động chính xác mà không "Không thể nhập phương tiện"? Tại sao ngay cả "Kiểm tra đơn vị" có một vài thông báo "Không thể nhập phương tiện"?


Vì máy chủ nơi bạn nhập cần lấy chúng từ vị trí cũ, bạn không chỉ kiểm tra xem các tệp có ở máy chủ cũ hay không, nếu máy chủ mới có thể tìm nạp chúng. Có lẽ một cái gì đó giới hạn yêu cầu ra bên ngoài. Bạn đã thử nhập nó trên một máy chủ khác hoặc localhost chưa? Tôi sợ đây có thể là một vấn đề rất cục bộ.
kraftner

1
Kể từ WordPress 4.3.1 (có thể sớm hơn), bạn có thể xác định IMPORT_DEBUGvà đặt nó trueđể nhận phản hồi có ý nghĩa thay vì chỉ "Không thể nhập phương tiện". Tôi không thể tưởng tượng tại sao đây không phải là hành vi mặc định. Điều đó có thể giúp thu hẹp vấn đề của bạn xuống nếu thời tiết vừa phải.
Đánh dấu

@Mark trong tập tin nào tôi có thể đặt IMPORT_DEBUGtùy chọn
kimliv

2
@kimliv: bạn sẽ muốn gắn cái này vào wp-config.php ở phần gốc của bản cài đặt WordPress của bạn : define ( 'IMPORT_DEBUG', true );.
Đánh dấu

Xin lỗi vì đã va chạm, có cùng một vấn đề và trang web ban đầu tôi nhập có SSL không hoạt động và các xmlURL được bật https, chỉnh sửa các xmltệp để chuyển đổi httpsđể httptrợ giúp.
Samuel Elh

Câu trả lời:


12

Tôi đã gặp một vấn đề rất giống nhau khi tôi chuyển một Blog WordPress từ một cài đặt WordPress sang cài đặt Multisite với các tên miền khác nhau nhưng cùng một IP.
Tôi phát hiện ra rằng vấn đề là wp_http_validate_urlchức năng làm giảm URL nếu IP nguồn giống với IP đích.
Bạn có thể thêm bộ lọc wp_http_validate_urlđể ngăn chặn điều này và cho phép IP nguồn và đích phù hợp:

add_filter( 'http_request_host_is_external', '__return_true' );

Vui lòng xem câu trả lời này để được giải thích chi tiết về móc lọc và lý do bạn nên xóa nó sau khi nhập: /wordpress//a/123313/75573


Tôi đã dành gần 5 giờ để cố gắng nhập các bài đăng của mình với hình ảnh của họ và điều này đã giải quyết nó.
Jonny

Tôi không chắc chắn tôi hiểu nơi chỉnh sửa này cần phải đi. Ai đó có thể giải thích thêm?
ClairelyClaire

Bạn có thể thả nó vào hàm.php hoặc đặt nó vào Plugin. Việc sau này giúp dễ dàng bật và tắt khi cần thiết.
Merl

1

Khi bạn tạo tệp xuất của mình, nó có trên máy chủ trực tiếp hoặc localhost không? Là trang web vẫn có thể truy cập? Nếu nhập phương tiện không thành công, điều đó có nghĩa là các hình ảnh, như được liên kết ra khỏi XML, sẽ xuất hiện 404.

Mở tệp XML và xem nơi các hình ảnh được trỏ. Nếu chúng ta mở tệp XML của Đơn vị chủ đề, chúng ta sẽ thấy các dòng như thế này:

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

Tập tin đó rất rõ ràng để nhập khẩu. Các tập tin Đính kèm của bạn nói gì?


1
Tôi đã đề cập "Và hình ảnh không tải được liên kết nóng từ máy chủ trước đó tiêu thụ việc chuyển giao máy chủ trước đó ..." cho biết hình ảnh không trả về 404, chúng không có trên localhost nhưng chúng vẫn tạo ra "Không thể nhập Media ". My <wp:attachment_url>nói example.com/2008/06/image.jpg cũng vậy, example.com luôn là miền có thể truy cập. Đó là lý do tại sao tôi hỏi câu hỏi này :) Nó rõ ràng không hoạt động ngay cả khi hình ảnh không tạo ra 404. Nó thậm chí không hoạt động với wpthemetestdata.files.wordpress.com đôi khi (~ 5 hình ảnh ngẫu nhiên trong số 30 thất bại).
Paul

Phải, xin lỗi, tâm trí của tôi có một chút bị đốt cháy vào thời điểm này trong đêm. Bạn có một số loại bảo vệ hotlink trên máy chủ?
Ý tưởng bắt buộc

1
Không, đó là máy chủ có thể truy cập công khai với hình ảnh có thể truy cập công khai, không bảo vệ bất cứ điều gì. Nhưng ngay cả khi có sự bảo vệ nào đó, máy chủ của WordPress thỉnh thoảng cũng làm điều tương tự. Có nghĩa là nhà nhập khẩu này chỉ là lỗi?
Paul

Điều đó hoặc một trong các máy chủ có giá trị thời gian chờ ngắn đáng ghét. Tôi mới ra ý tưởng cho bạn. XML có nhập đúng vào Localhost không? Nếu vậy, bạn có thể sắp xếp gian lận ... thực hiện nhập cục bộ sau đó sử dụng WP Migrate DB và sao chép kết quả để sống.
Ý tưởng bắt buộc

1

Tôi cũng đang vật lộn với việc nhập phương tiện vào wordpress.org từ wordpress.com. Tôi đã quản lý để nhập tất cả các bài đăng tuy nhiên hình ảnh vẫn được liên kết với trang web cũ. Tôi gần như đã khóc khi nhận ra giải pháp duy nhất là tải xuống và tải lên thủ công hơn 200 hình ảnh lớn qua đường bưu điện (xuất / nhập các phần nhỏ hơn của bài đăng cũng không hoạt động).

Sau khi thử nghiệm một số plugin tôi đã tìm thấy một plugin thực sự nhập phương tiện wordpress của bạn một cách tự động. Tôi không thể tin nhưng nó thực sự hoạt động. Bạn phải đi qua bài viết nhưng vẫn tốt hơn tải xuống và tải lên thủ công. Đây là đường dẫn nếu có ai quan tâm


1

Đảm bảo trang web của bạn không được đặt thành "Riêng tư".

Khi bạn xuất blog Wordpress của mình, tất cả nội dung văn bản được nhúng vào tệp XML kết quả. Tất cả nội dung nhị phân (hình ảnh, tệp đính kèm, v.v.) được xuất dưới dạng URL trỏ đến vị trí của chúng trên blog hiện có. Đây là lý do tại sao khi bạn nhập từ một blog Wordpress riêng tư, bạn vẫn có thể nhập tất cả các bài đăng / etc nhưng tất cả các hình ảnh / etc sẽ thất bại.

Đây là nơi bạn cần thay đổi cài đặt như phiên bản hiện tại (2017-06-19):

nhập mô tả hình ảnh ở đây

Tài liệu Wordpress có liên quan:

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

Lưu ý rằng nó cần được thực hiện từ cài đặt tài khoản Wordpress.com của bạn, không phải từ cài đặt của chính blog, đây là một điểm gây nhầm lẫn tiềm ẩn khác (và sự thất vọng).


1

Vấn đề này có thể xảy ra khi sử dụng một số plugin nhất định trên trang web từ xa / cục bộ.

Lý tưởng nhất là vô hiệu hóa tất cả các plugin trên cả hai trang web trước khi xuất hoặc nhập, sau đó kích hoạt lại chúng sau khi quá trình hoàn tất.

Nếu bạn đang cố gắng tránh vô hiệu hóa TẤT CẢ các plugin, thì ít nhất hãy hủy kích hoạt bất kỳ plugin nào ảnh hưởng đến hình ảnh hoặc xử lý hình ảnh ... loại phổ biến nhất có lẽ là những plugin tối ưu hóa hình ảnh.

Trong trường hợp của tôi, tôi đã có EWWW Image Tối ưu hóa (mà tôi rất khuyến khích) hoạt động trên trang web cục bộ và nó đã gây ra lỗi này. Tôi đã vô hiệu hóa nó, chạy quá trình nhập thành công và kích hoạt lại nó.


0

Tôi gặp vấn đề tương tự và sau nhiều giờ tìm kiếm và kiểm tra vấn đề là máy chủ nguồn đã chặn tải xuống hình ảnh do "Bảo vệ liên kết nóng" đang hoạt động trong cPanel.


Bạn đúng. Trong trường hợp của tôi, tôi nhận ra rằng tôi đã triển khai bảo vệ hotlink trong .htaccess của mình. Các trường hợp khác là cPanel hoặc Cloudflare.
John Doe

0

Đối với những người không muốn sử dụng add_filter hoặc không biết cách tích hợp nó mà không tạo một mô-đun riêng. Đây là một mẹo nhanh chóng tiện dụng để hoàn thành nó.

Mở tập tin này

vim ./wp-includes/http.php

Đi đến dòng 566và nhận xét khối mã sau đây.

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

Khi bạn nhận xét hai dòng đó, hãy đi vào và thêm dòng sau.

return true;

Hãy tiếp tục và lưu tệp và tải lên tệp XML để thử lại. Bây giờ bạn sẽ tải xuống tất cả các nội dung liên quan. Quay trở lại loại bỏ khối nhận xét và tuyên bố trở lại và bạn tốt để đi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.