如何阻止WordPress oEmbed HTTP URL

时间:2017-04-13 18:08:06

标签: wordpress plugins filter oembed

想要阻止包含非https网址的oEmbed请求,但以下代码对我没有帮助。不确定这是否是正确的钩子。有什么想法吗?

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 个答案:

答案 0 :(得分:1)

我没有很多Wordpress体验,但是the docs让它听起来像是期待某种回归,而只有当网址以" HTTP://&#34 ;.另外,我认为这是在某种类中运行,否则在回调规范中使用$this将无法正常工作。顺便说一句,PHP提供a built-in function来解析URL:

<?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也可以为事情提供更多启示。