首页 > 解决方案 > 试图让 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>';
  }
?>

编辑编辑:误报我相信我缓存了一些东西。上面的代码是正确的代码,似乎可以正常工作。

标签: wordpressadvanced-custom-fields

解决方案


您正试图在您的 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>';
    }
?>

推荐阅读