想要阻止包含非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。
答案 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也可以为事情提供更多启示。