wp-embed.min.js는 WordPress 4.4에서 무엇을합니까?


52

질문

  1. 뭐라고합니까 wp-embed.min.js파일은 무엇입니까? 블로그 페이지 바닥 글 끝에 추가 된 것으로 나타났습니다.
  2. 어떻게 제거 할 수 있습니까?

노력

인터넷 검색을 한 후 Codex 에서 Embeds 를 찾았습니다 . WordPress에서 기본적으로 내 페이지에 비디오 등을 추가하고 싶다고 생각하는 이유는 무엇입니까?

환경

워드 프레스 4.4


1
이것은 probabli에서 oEmbed 서버로 WP 클라이언트가 아닌 관련이
— 마크 Kaplun

나는 질문의 첫 부분에 답을 추가하려고 노력했다
— prosti

11
페이지 속도가 느려질 것입니다.
— Josh Habdas

@MarkKaplun이 정확합니다. wp-embed.min.js를 사용하면 oEmbed를 통해 원격 WordPress 사이트의 게시물을 자신의 WordPress 사이트에 포함 할 수 있습니다.
— Jonathan Nicol

답변:


61

나는 이것을 사용하여 마침내 그것을 제거 할 수 있었다 :

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

4
"wp_enqueue_scripts"조치에 추가하면 작동하는 것 같습니다.
— andershagbard 2016 년

7
네, 대신 wp_enqueue_scripts후크를 사용하겠습니다wp_dequeue_script()wp_deregister_script()
— swissspidy

@swissspidy wp_dequeue_script( 'wp-embed' );가 작동하지 않습니다. 테스트를 실행할 수 있습니까? 후드 권장 사항이 유효합니다.
— Aziz

WordPress 4.6에서 @Trix 스크립트가 제대로 작동합니다. 감사합니다!
— Sebastian

1
이것을 사용하면 themecheck가 전달되지 않습니다 .
— lowtechsun

20

wp-embed.min.js 파일의 기능은 무엇입니까? 현재 답변 중 어느 것도이 질문에 정확하게 대처하지 못합니다.

첫째, embed.min.js가 Vimeo, YouTube 등과 같은 다른 제공 업체의 oEmbed 컨텐츠를 포함하는 것과 관련이 없다는 것은 상당히 확실합니다. embed.min.js를 제거 할 수 있으며 해당 임베드는 계속 작동합니다.

특히 다른 사람의 블로그 / 웹 사이트에서 WordPress 게시물 을 포함 하는 것과 관련이 있습니다. WordPress 게시물에 WordPress 게시물 포함 : 메타! 이 기능은 WordPress 4.4에서 도입되었습니다 .

embed.min.js를 비활성화하면 해당 기능이 사이트에서 작동하지 않습니다.

이를 쉽게 테스트 할 수 있습니다. 다른 사람의 WordPress 게시물의 URL을 자신의 게시물 중 하나에 붙여 넣습니다. WP는 해당 URL을 임베디드 위젯으로 변환해야합니다. 프런트 엔드에서 게시물을 볼 때 마크 업에 인용 부호와 iframe이 포함되어 있음을 알 수 있습니다. 인용구는 포함 된 블로그 게시물에 대한 텍스트 전용 링크이며, iFrame의 소스 /embed/는 oEmbed 엔드 포인트 가 추가 된 블로그 게시물의 URL입니다 .

embed.min.js는 인용 부호를 숨기고 iframe을 나타냅니다. 또한 iframe을 멋지게 재생하기 위해 다른 shenanigans를 수행합니다.

이제 다른 답변에서 설명한 방법 중 하나를 사용하여 페이지에서 embed.min.js 스크립트를 제거하십시오. 페이지를 새로 고침하면 인용구가 표시되지만 iframe이 숨겨져 있음을 알 수 있습니다.

한마디로 : 다른 사람의 WordPress 게시물을 자신의 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()함수 이름으로하는 것은 정말 나쁜 생각입니다. 언젠가 Embeds 비활성화 플러그인을 설치하면 하늘이 무너집니다. 플러그인을 설치하는 것이 좋습니다. 테마의 functions.php 파일에 추가하면 아무런 이점이 없습니다. 그렇게 주장하면 실제로 다른 함수 이름을 사용해야합니다.
— swissspidy

@swissspidy 제안에 감사드립니다, 나는 함수의 이름을 업데이트했습니다
— Nadeem Khan

2
이 단지 프론트 엔드 / 백엔드에서 JS를 제거하지 않습니다, 그것은 또한 완전히 다른 사이트에 글을 삽입 할 수있는 기능을 비활성화됩니다 참고, WP에서 oEmbed가 작동하지 않습니다
— 톰 J 노웰가

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.