WordPress oembed_fetch_url未调用过滤器



我正在开发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 嵌入。

相关内容

  • 没有找到相关文章

最新更新