wordpress - 试图让 Wordpress ACF 包含来自 YouTube 或 Vimeo 的视频,但我收到 500 错误
问题描述
这是我的代码,当我没有 if 语句时,页面将正确加载,但是一旦我添加 if 语句,它就会进入 500 错误页面。
是的,我知道我错过了 Vimeo if 语句,但此时这无关紧要。
<?php
$youtube = get_field('youtube1');
$vimeo = get_field('vimeo1');
if ($youtube) {
echo '<iframe width="420" height="315" src="https://www.youtube.com/embed/' . the_field('youtube1') . '"></iframe>'
}
?>
编辑:澄清,当我在没有 if 语句的情况下回显 iframe 时,它可以工作。但是,当我尝试说 if ($youtube) echo iframe 时,它会中断。
我应该回显变量而不是 the_field('youtube1') 这是我更新的代码。我仍然收到 500 错误。
<?php
$youtube = get_field('youtube1');
$vimeo = get_field('vimeo1');
if ($youtube) {
echo '<iframe width="420" height="315" src="https://www.youtube.com/embed/' . $youtube . '"></iframe>'
}
?>
分号在 php 中很重要...哎呀这是更新的代码,但是即使 ACF 在页面上为空白,它仍然会回显没有视频 ID 的 iframe 视频,因此它只是一个损坏的视频。
<?php
$youtube = get_field('youtube1');
$vimeo = get_field('vimeo1');
if ('' !== strval($youtube)) {
echo '<iframe width="420" height="315" src="https://www.youtube.com/embed/' . $youtube1 . '"></iframe>';
}
?>
编辑编辑:误报我相信我缓存了一些东西。上面的代码是正确的代码,似乎可以正常工作。
解决方案
您正试图在您的 echo 语句中回显某些内容。该函数the_field()
回显该字段的值。您应该使用get_field()
或只使用该
$youtube
变量。
这是更新的代码:
<?php
$youtube = get_field('youtube1');
$vimeo = get_field('vimeo1');
if ('' !== strval($youtube)) {
echo '<iframe width="420" height="315" src="https://www.youtube.com/embed/' . $youtube . '"></iframe>';
}
?>