wp-embed.min.js ทำอะไรใน WordPress 4.4


52

คำถาม

  1. ไม่อะไรwp-embed.min.jsไฟล์ทำอย่างไร ฉันสังเกตเห็นว่ามันถูกเพิ่มไปยังส่วนท้ายของส่วนท้ายของหน้าบล็อกของฉัน
  2. ฉันจะกำจัดมันได้อย่างไร

ความพยายาม

หลังจาก googling และฉันพบEmbedsบน Codex ทำไม WordPress ถึงคิดว่าฉันต้องการเพิ่มวิดีโอ ฯลฯ ลงในหน้าของฉันเป็นค่าเริ่มต้น?

สิ่งแวดล้อม

WordPress 4.4


1
นี่เป็น probabli ที่เกี่ยวข้องกับ wp เป็นเซิร์ฟเวอร์ oEmbed ไม่ใช่ลูกค้า
Mark Kaplun

ฉันพยายามเพิ่มคำตอบในส่วนแรกของคำถาม
prosti

11
ค่อนข้างแน่ใจว่ามีเพียงเพื่อชะลอหน้าของคุณ
Josh Habdas

@ MarkKaplun ถูกต้อง wp-embed.min.js ช่วยให้คุณสามารถฝังโพสต์จากเว็บไซต์ WordPress ระยะไกลในเว็บไซต์ WordPress ของคุณเองผ่าน oEmbed
Jonathan Nicol

คำตอบ:


61

ในที่สุดฉันก็สามารถกำจัดได้โดยใช้สิ่งนี้:

function my_deregister_scripts(){
  wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );

4
การเพิ่มในการดำเนินการ "wp_enqueue_scripts" ก็ดูเหมือนว่าจะทำงาน
andershagbard

7
ใช่ฉันจะใช้wp_enqueue_scriptsตะขอและwp_dequeue_script()แทนwp_deregister_script()
swissspidy

@swissspidy wp_dequeue_script( 'wp-embed' );จะไม่ทำงาน - คุณช่วยกรุณาทดสอบได้ไหม? คำแนะนำ hood ถูกต้อง
Aziz

ภายใต้ WordPress 4.6 @Trix สคริปต์ทำงานได้ดี ขอขอบคุณ!
เซบาสเตียน

1
ใช้นี้เคยชินผ่านthemecheck
lowtechsun

20

ฉันมาถึงกระทู้นี้ด้วยคำถามเดียวกัน: ไฟล์ wp-embed.min.js ทำอะไร ไม่มีคำตอบปัจจุบันที่ตอบคำถามนี้อย่างถูกต้อง

ประการแรกฉันค่อนข้างแน่ใจว่า embed.min.js ไม่เกี่ยวข้องกับการฝังเนื้อหา oEmbed จากผู้ให้บริการรายอื่น: Vimeo, YouTube เป็นต้นคุณสามารถลบ embed.min.js และ embed เหล่านั้นจะยังคงทำงานต่อไป

มันเกี่ยวข้องเฉพาะกับการฝัง โพสต์ WordPressจากบล็อก / เว็บไซต์ของผู้อื่น การฝังโพสต์ WordPress ภายในโพสต์ WordPress: ดังนั้น meta! คุณลักษณะนี้เป็นที่รู้จักใน WordPress 4.4

การปิดใช้งาน embed.min.js จะหยุดไม่ให้คุณลักษณะนั้นทำงานบนไซต์ของคุณ

คุณสามารถทดสอบสิ่งนี้ได้อย่างง่ายดาย: วาง URL ของโพสต์ WordPress ของคนอื่นลงในโพสต์ของคุณเอง WP ควรแปลง URL นั้นเป็นวิดเจ็ตฝังตัว เมื่อคุณดูโพสต์ของคุณในส่วนหน้าคุณจะสังเกตเห็นว่ามาร์กอัปของคุณมี blockquote และ iframe Blockquote เป็นลิงก์แบบข้อความอย่างเดียวไปยังบล็อกโพสต์ที่คุณฝังในขณะที่แหล่งที่มาของ iFrame เป็น URL ของโพสต์บล็อกที่มี/embed/ต่อท้าย: oEmbed endpoint

embed.min.js ซ่อน blockquote และแสดง iframe นอกจากนี้ยังมี shenanigans อื่น ๆ ที่จะทำให้การเล่น iframe นั้นดี

ทีนี้ลองลบสคริปต์ embed.min.js ออกจากหน้าของคุณโดยใช้หนึ่งในวิธีที่อธิบายไว้ในคำตอบอื่น ๆ โหลดหน้าเว็บของคุณใหม่แล้วคุณจะสังเกตเห็นว่าบล็อกโคทนั้นมองเห็นได้ แต่ iframe ถูกซ่อนอยู่

กล่าวโดยย่อ: หากคุณต้องการฝังโพสต์ WordPress ของคนอื่นไว้ในโพสต์เวิร์ดเพรสของคุณเองปล่อยให้ embed.min.js อยู่คนเดียว หากคุณไม่สนใจคุณสมบัตินี้คุณสามารถลบออกได้อย่างปลอดภัย


3
โปรดทราบว่าการลบembed.jsไม่เพียงพอที่จะปิดใช้งานการฝังอย่างถูกต้องและอาจนำไปสู่พฤติกรรมแปลก ๆ หากไม่ถูกต้อง หากต้องการปิดใช้งานการฝังเหล่านี้อย่างสมบูรณ์ให้ใช้ปลั๊กอินปิดการใช้งานที่แนะนำอย่างเป็นทางการ
swissspidy

ทำงานได้ตามที่คาดหวังและอธิบายใน word-press 5.x เช่นกัน
inrsaurabh

8

คำตอบของ Trix ไม่ได้ผลสำหรับฉันใน WordPress 4.4.1แต่ฉันพบวิธีแก้ปัญหาในรหัสของปลั๊กอินปิดการใช้งาน Embeds WordPress เพิ่มรหัสนี้ (แก้ไข) ในfunctions.phpไฟล์ธีมของคุณเพื่อลบwp-embed.min.jsไฟล์จากส่วนหน้าอย่างสมบูรณ์:

add_action( 'init', function() {

    // Remove the REST API endpoint.
    remove_action('rest_api_init', 'wp_oembed_register_route');

    // Turn off oEmbed auto discovery.
    // Don't filter oEmbed results.
    remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);

    // Remove oEmbed discovery links.
    remove_action('wp_head', 'wp_oembed_add_discovery_links');

    // Remove oEmbed-specific JavaScript from the front-end and back-end.
    remove_action('wp_head', 'wp_oembed_add_host_js');
}, PHP_INT_MAX - 1 );

3
ใช้disable_embeds_init()เป็นชื่อฟังก์ชั่นเป็นความคิดที่ดีจริงๆ หากคุณกำลังจะติดตั้งปลั๊กอินปิดใช้งานฝังหนึ่งวันท้องฟ้าจะหล่นลงมา ฉันแนะนำให้คุณติดตั้งปลั๊กอินไม่มีประโยชน์ในการเพิ่มสิ่งนี้ไปยังไฟล์ function.php ของธีมของคุณ หากคุณยืนยันในการทำเช่นนั้นคุณควรใช้ชื่อฟังก์ชั่นอื่น
swissspidy

ขอบคุณสำหรับข้อเสนอแนะ @swspspidy ฉันได้อัปเดตชื่อฟังก์ชั่นแล้ว
Nadeem Khan

2
โปรดทราบว่าสิ่งนี้จะไม่เพียงลบ JS ออกจากส่วนหน้า / ส่วนหลังมันจะปิดการใช้งานความสามารถในการฝังโพสต์ของคุณในเว็บไซต์อื่น WP Oembed จะไม่ทำงาน
Tom J Nowell

บทความเกี่ยวกับ Kinsta ให้รายละเอียดเกี่ยวกับวิธีการใช้ตัวกรองนี้เพื่อลบมันkinsta.com/knowledgebase/disable-embeds-wordpress
Andrew Schultz

4

ฉันคิดว่าส่วนนี้ยังขาดหายไป

ไฟล์ wp-embed.min.js ทำอะไร ฉันสังเกตเห็นว่ามันถูกเพิ่มไปยังส่วนท้ายของส่วนท้ายของหน้าบล็อกของฉัน

คำตอบสำหรับคำถามนี้อยู่ในการติดตาม https://core.trac.wordpress.org/changeset/35708

ฝัง: ลบ & อักขระออกจาก JS ฝังแบบอินไลน์

WordPress เวอร์ชั่นที่เก่ากว่าจะแปลง & ตัวละครเหล่านั้นเป็น & ซึ่งใช้สำหรับ JS ที่ไม่ทำงาน หากคนกำลังใช้งานรุ่นเก่ากว่าอย่าปล่อยให้ชีวิตของพวกเขายากขึ้นกว่าที่เป็นอยู่แล้ว

นอกจากนี้ยังจะพยายามดมกลิ่นตัวแทนผู้ใช้


2
ข้อความที่คุณยกมา ("ลบ & ตัวอักษรจากอินไลน์ฝัง JS" ฯลฯ ) เป็นข้อความคอมมิทเดียวสำหรับไฟล์ แต่ไม่ได้อธิบายถึงวัตถุประสงค์โดยรวมของสคริปต์ ฉันได้ให้คำตอบของตัวเองซึ่งหวังว่าจะให้แสงสว่างมากขึ้น
Jonathan Nicol
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.