2017-04-13 1 views
1

https가 아닌 URL을 포함하는 oEmbed 요청을 차단하고 싶지만 다음 코드는 도움이되지 않습니다. 이것이 올바른 훅인지 확실하지 않습니다. 어떤 아이디어?WordPress OEmbed HTTP URL을 차단하는 방법

add_filter('pre_oembed_result', array($this, 'filter_oembed'), 5, 3); 

function filter_oembed ($result, $url, $args) { 
    if (substr($url, 0, 7) === "http://") { 
     return null; 
    } 
} 

저는 Wordpress 4.7.2를 사용하고 있습니다.

답변

1

Wordpress의 경험이 많지 않지만 the docs은 어떤 종류의 수익이 기대되는 것처럼 들리며 URL이 "http : //"로 시작하는 경우에만 반환됩니다. 또한이 클래스의 일종, 그렇지 않으면 $this 콜백을 사양을 잘 작동하지 않을 사용하여 실행되는 것으로 가정합니다. 그런데, PHP는 URL을 구문 분석 a built-in function을 제공합니다

<?php 
add_filter('pre_oembed_result', array($this, 'filter_oembed'), 5, 3); 

function filter_oembed ($result, $url, $args) { 
    if (parse_url($url, PHP_URL_SCHEME) !== "https") { 
     $result = false; 
    } 
    return $result; 
} 

Disable oEmbed for a Single Shortcode or at Least All Internal Links는 것들에 더 많은 빛을 흘릴 수 있습니다.

+0

당신이 포함 된 고마워 링크 도움이 .. 귀하의 답변에 반환 null 대신 false를 반환해야합니다! – srvy

+0

확인되었습니다. 나는 그것에 대해 확신하지 못했습니다 ... – miken32

관련 문제