WordPress中的`oembed_fetch_url`钩子是一个用于修改或扩展oEmbed URL的功能。oEmbed是一种用于嵌入其他网站内容的标准,包括视频、音频、图片等等。
`oembed_fetch_url`钩子的用法如下:
1. 注册钩子
add_filter('oembed_fetch_url', 'custom_oembed_fetch_url', 10, 3);
该代码将在WordPress加载时注册一个名为 `custom_oembed_fetch_url` 的回调函数,该函数将在每次使用oEmbed嵌入内容时被调用。
2. 实现回调函数
function custom_oembed_fetch_url($provider, $url, $args) {
// 在这里修改或扩展oEmbed URL的功能
return $provider;
}
在回调函数中,可以对oEmbed URL进行修改或扩展,并最终将修改后的URL返回。
回调函数中的参数解释如下:
- `$provider`:oEmbed提供者的URL。
- `$url`:要嵌入的内容的URL。
- `$args`:oEmbed URL包含的参数。
通过在回调函数中修改或扩展oEmbed URL,可以实现以下功能:
- 更改oEmbed提供者的URL。
- 添加额外的参数到oEmbed URL中。
- 删除不需要的参数。
示例代码如下:
function custom_oembed_fetch_url($provider, $url, $args) {
// 修改oEmbed提供者的URL
$provider = str_replace('example.com', 'newprovider.com', $provider);
// 添加额外的参数到oEmbed URL中
$args['foo'] = 'bar';
// 删除不需要的参数
unset($args['baz']);
// 构建修改后的oEmbed URL
$url = $provider . '?' . http_build_query($args);
return $url;
}
add_filter('oembed_fetch_url', 'custom_oembed_fetch_url', 10, 3);
以上示例中,`custom_oembed_fetch_url`函数将oEmbed提供者的URL中的`example.com`修改为`newprovider.com`,并在oEmbed URL中添加了一个名为`foo`值为`bar`的参数。同时,删除了名为`baz`的参数。最后,通过将修改后的oEmbed URL返回,来实现对oEmbed URL的修改或扩展。
需要注意的是,`oembed_fetch_url`钩子只能修改或扩展oEmbed URL,无法对oEmbed内容本身进行修改。如果需要修改或扩展oEmbed内容,可以使用其他钩子,如`oembed_dataparse`或`embed_oembed_html`。


0 个评论