วิธี oEmbed MySite ใน Wordpress

Sep 30 2020

ใครช่วยได้โปรดช่วยฉันเข้าใจวิธีแก้จุดบกพร่องนี้และต้องทำอย่างไร

ในระยะสั้น

ฉันสร้างผู้ให้บริการ oembed และเพิ่มลงใน wordpress ฉันเห็นว่า wordpress ตอบสนองต่อ json ที่ถูกต้อง แต่ไม่มีการขอรูปภาพเพิ่มเติมที่ url ที่ให้มา

ทั้งหมดที่ฉันรู้

โดยพื้นฐานแล้วฉันมีไซต์ wordpress และฉันต้องการฝังรูปภาพจากไซต์อื่นของฉันในขณะที่เขียนโพสต์

ฉันเพิ่มไฟล์

wp_oembed_add_provider( 'https://dynamicallyLoadedSPA.com/*', 'https://laravelBackend.com/oembed/', false );

ฟังก์ชันใน functions.php (ในไซต์ wordpress) และหลังจากนั้นตอนนี้เมื่อฉันวางลิงค์ในขณะที่เขียนโพสต์กระบวนการฝังก็เกิดขึ้น แต่ยังไม่มีภาพหรืออะไรเลย ฉันไม่รู้วิธีแก้จุดบกพร่องนี้

ฉันเห็นในบันทึก nginx ของฉัน

/oembed/?maxwidth=1060&maxheight=1000&url=https://dynamicallyLoadedSPA.com/some-link-with-picture-and-description&dnt=1&format=json

wordpress ทำการร้องขอไปยังจุดสิ้นสุดนั้น

หากฉันส่งคำขอเดียวกันในเบราว์เซอร์แบ็กเอนด์ laravel ของฉันจะส่งคืน:

{
    "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'>"
}

แต่หลังจากที่ woordpress ได้รับสิ่งนี้จะไม่มีการร้องขอเพิ่มเติมสำหรับรูปภาพจริงที่ไฟล์

https://img.laravelBackend.com/goods/4289/Untitled-2-04.jpg

จุดสิ้นสุด

เหตุใด woordpress จึงไม่ขอรูปภาพและแสดงในโพสต์และ UI ของโปรแกรมแก้ไขโพสต์

ฉันคาดหวังว่ารูปภาพที่มีคำอธิบายจะปรากฏขึ้นเมื่อฉันวางลิงก์ในตัวแก้ไข "gutenberg" ของ woordpress

ปล. เมื่อฉันดู html ของบล็อกที่แก้ไขได้ด้วยสายตาในโปรแกรมแก้ไข gutenberg นี่คือ html ที่สร้างขึ้น (ทุกอย่างดูเหมือนจะเป็นไปตามลำดับ)

<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://dynamicallyLoadedSPA.com/sausages
</div></figure>

คำตอบ

Rup Sep 30 2020 at 06:43

ฉันคิดว่าการใช้งาน oEmbed ของคุณไม่ถูกต้อง คุณสามารถดูได้ในคลาส WP-oEmbedว่า WordPress รองรับค่าสี่ประเภท: ภาพถ่ายวิดีโอลิงค์และรวย ในขณะที่คุณกำลังส่งคืน type = image

จากส่วนข้อมูลจำเพาะ 2.3.4 ดูเหมือนว่ารายการของ WordPress จะเสร็จสมบูรณ์แล้วและโดยทั่วไปไม่รองรับ "รูปภาพ" คุณอาจหมายถึง type = photo แต่โดยทั่วไปแล้วจะไม่เชื่อมโยงและมีคุณสมบัติความสูงและความกว้างบังคับที่คุณไม่ได้จัดหา

ดังนั้นฉันคิดว่าตัวเลือกของคุณคือ:

  • เปลี่ยนผู้ให้บริการ oEmbed ของคุณเพื่อส่งคืน type = rich แทนและสร้าง HTML เพื่อรวมไว้ที่นั่น
  • ขยาย WordPress เพื่อรองรับ type = image: ใช้ตัวกรองoembed_dataparse (เรียกจากด้านล่างของฟังก์ชันที่ฉันเชื่อมโยงด้านบน) ตรวจหา type = image ที่นั่นและส่งคืนการสร้าง HTML ที่คุณต้องการรวมจากข้อมูล oEmbed ที่ส่งคืน
    อย่างไรก็ตามมีโอกาสที่คุณจะต้องขยาย Gutenberg เพื่อทำงานกับประเภทใหม่ด้วยและฉันไม่แน่ใจว่าจะทำอย่างไร