高级自定义域仅嵌入输出YouTube URL

时间:2019-01-10 作者:Luke

问题与@Hjalmar 在高级自定义字段上,但仍然没有修复。仅显示URL文本。

Front End oembed output

尝试了原始ACF oembed选项:

<div class="embed-container">

    <?php echo get_field(\'video_embedd\'); ?>

</div>
没有运气。

将YouTube嵌入URL放置在ACF文本字段中,并将其输出到HTML iframe中:

<?php

$videoEmbeddPlease = get_field(\'video_embedd\');

if (!empty($videoEmbeddPlease)): ?>

    <iframe width="560" height="315" src="<?php echo $videoEmbeddPlease?>" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

<?php endif ?>
没有运气。

甚至尝试了高级ACF示例:

<?php

// get iframe HTML
$iframe = get_field(\'video_embedd\');

// use preg_match to find iframe src
preg_match(\'/src="(.+?)"/\', $iframe, $matches);
$src = $matches[1];

// add extra params to iframe src
$params = array(
\'controls\'    => 0,
\'hd\'        => 1,
\'autohide\'    => 1
);

$new_src = add_query_arg($params, $src);

$iframe = str_replace($src, $new_src, $iframe);

// add extra attributes to iframe html
$attributes = \'frameborder="0"\';

$iframe = str_replace(\'></iframe>\', \' \' . $attributes . \'></iframe>\', $iframe);

// echo $iframe
echo $iframe;

?>
甚至尝试了所见即所得选项。

<?php the_field(\'video_embedd\'); ?>
还是这样!没有嵌入式视频显示,只有屏幕上的YouTube URL文本。

任何帮助都是难以置信的。

非常感谢。

2 个回复
SO网友:Roman Nazarkin

当视频not publicly accessible. 在我的例子中,视频只是被他们的作者从YouTube上删除了,ACF的oEmbed模块无法获取元数据来正确显示视频。

SO网友:nigelheap

也有可能谷歌正在阻止获取嵌入数据的api请求。

ACF使用wp_oembed_get 函数,在显示iframe之前从Youtube获取元数据。

有时,如果谷歌认为你的请求太多,它可能会阻止你的服务器或网络。谷歌将返回确认你不是机器人的页面

“我们的系统检测到来自您计算机网络的异常流量”

相关推荐

Use oEmbed for static html

我正在尝试添加jQuery插件(https://github.com/rmanivannan/speedometer-jquery-plugin) 到Wordpress页面(不是post),但是插件的行为不符合预期。我认为这可能与使用我的Wordpress主题生成页面时脚本引用、css引用和Javascript被破坏的方式有关。是否可以:-将包含控件的静态HTML页面上载到子域-使用oEmbed将静态HTML页面包括在Wordpress页面中i、 e.子域将是主域的oEmbed提供程序?