Cách cài đặt MySite trong Wordpress
Ai đó có thể vui lòng giúp tôi hiểu cách gỡ lỗi này và phải làm gì không?
Nói ngắn gọn
Tôi đã tạo một nhà cung cấp oembed và thêm nó vào wordpress. Tôi thấy rằng wordpress đã phản hồi đúng json. Nhưng không có thêm yêu cầu cho hình ảnh tại url được cung cấp.
Tất cả những gì tôi biết
Vì vậy, về cơ bản tôi có một trang web wordpress và tôi muốn nhúng một bức ảnh từ một trang web khác của tôi trong khi viết một bài đăng.
Tôi đã thêm
wp_oembed_add_provider( 'https://dynamicallyLoadedSPA.com/*', 'https://laravelBackend.com/oembed/', false );
hàm trong functions.php (trong trang wordpress). Và sau đó, bây giờ khi tôi dán một liên kết trong khi viết một bài đăng, quá trình nhúng diễn ra, nhưng vẫn không có hình ảnh hoặc bất cứ điều gì. Tôi không biết làm thế nào để gỡ lỗi này.
Tôi thấy trong nhật ký nginx của mình,
/oembed/?maxwidth=1060&maxheight=1000&url=https://dynamicallyLoadedSPA.com/some-link-with-picture-and-description&dnt=1&format=json
wordpress đã thực hiện yêu cầu đến điểm cuối đó.
nếu tôi thực hiện yêu cầu tương tự trong trình duyệt, chương trình phụ trợ laravel của tôi sẽ trả về:
{
"title": "Sausages",
"description": "expiration date: 2020.10.01, 10euro",
"url": "https://dynamicallyLoadedSPA.com/sausages",
"type": "image",
"tags": "food",
"image": "https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg",
"code": "<img src='https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg'>"
}
Nhưng sau khi woordpress nhận được điều này, không có thêm yêu cầu nào về hình ảnh thực tế tại
https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg
điểm cuối.
Tại sao woordpress không đưa ra yêu cầu cho hình ảnh và hiển thị nó trong giao diện người dùng của trình chỉnh sửa bài đăng và bài đăng?
Tôi đang mong đợi một bức ảnh có mô tả xuất hiện khi tôi dán một liên kết vào trình chỉnh sửa "gutenberg" của woordpress.
ps. khi tôi nhìn vào html của khối có thể chỉnh sửa trực quan trong trình chỉnh sửa gutenberg, đây là html được tạo (mọi thứ dường như theo thứ tự ở đó)
<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://dynamicallyLoadedSPA.com/sausages
</div></figure>
Trả lời
Tôi nghĩ rằng việc triển khai oEmbed của bạn là sai. Bạn có thể thấy trong lớp WP-oEmbed rằng WordPress hỗ trợ bốn giá trị loại: ảnh, video, liên kết và phong phú; trong khi bạn đang trả về type = image.
Từ phần thông số kỹ thuật 2.3.4, có vẻ như danh sách của WordPress đã hoàn thành và 'hình ảnh' thường không được hỗ trợ. Có thể ý bạn là type = photo, nhưng chúng thường không được liên kết và có thuộc tính chiều cao và chiều rộng bắt buộc mà bạn không cung cấp.
Vì vậy, tôi nghĩ các lựa chọn của bạn là:
- thay đổi nhà cung cấp oEmbed của bạn để trả về type = rich thay thế và tạo HTML để đưa vào đó
- mở rộng WordPress để hỗ trợ type = image: triển khai bộ lọc oembed_dataparse (được gọi từ cuối hàm mà tôi đã liên kết ở trên), phát hiện type = image ở đó và trả về HTML tạo mà bạn muốn đưa vào từ dữ liệu oEmbed được trả về.
Tuy nhiên, rất có thể bạn cũng sẽ phải mở rộng Gutenberg để làm việc với kiểu mới và tôi không chắc làm thế nào để làm điều đó.