我正在开发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_result
我需要修改 youtube 嵌入的网址,最终得到这个块:
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
WordPress实际上缓存了获取的结果,所以如果你遇到这种情况,可能是它在到达过滤器之前短路了,因为它在缓存中找到了标记。查看此内容以清除 oembed 缓存,然后查看筛选器是否未运行。
话虽如此,YouTube 会删除您发送的任何查询变量,因此您需要使用此处列出的其他答案专门用于 YouTube 嵌入。