我正在开发WP网站。我希望内容能够在内容中显示声音嵌入式播放器。 默认情况下,它会添加查询参数visible-true。我需要的是将其设置为false。所以我尝试了oembed_fetch_url过滤器,但它不是被调用的事件。 我已经搜索了谷歌,甚至在调用此过滤器时也没有任何信息。我试过这只是为了确保它正常工作:
function soundcloud_url_change($provider, $url, $args) {
return "somedummyurl.com";
}
add_filter('oembed_fetch_url', 'soundcloud_url_change', 10, 3);
网址仍然正确。所以我不知道如何操纵oembed网址。
答案 0 :(得分:0)
你可能想要挂钩过滤器: oembed_result
我需要修改youtube嵌入的url并最终使用此块:
function mod_oembed_youtube_url($html,$url,$args){
if(strpos($html, 'youtu.be') !== false || strpos($html, 'youtube.com') !== false){
$out = preg_replace("@src=(['\"])?([^'\">\s]*)@", "src=$1$2&rel=0", $html);
return $out;
}
return $html;
}
add_filter('oembed_result','mod_oembed_youtube_url',10,3);
这显然可以提高效率,仅适用于YouTube,但希望可以引导您朝着正确的方向前进。作为参考,oembed_result位于:
/wp-includes/class-oembed.php Line: 126
答案 1 :(得分:0)
WordPress实际上会缓存获取的结果,所以如果你遇到这个问题,它可能会在它到达过滤器之前short-circuiting,因为它在缓存中找到了标记。 Check out this用于清除oembed缓存,然后查看您的过滤器是否未运行。
话虽如此,YouTube会删除您发送的所有查询变量,因此您需要使用此处列出的其他答案专门用于YouTube嵌入。