Пытаясь заставить Wordpress ACF включить видео с YouTube или Vimeo, но вместо этого я получаю ошибку 500 - PullRequest
0 голосов
/ 10 марта 2019

Вот мой код, когда у меня нет оператора 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>'
  }
?>

Редактировать: Уточнение, когда я повторяю 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 пуст на странице, он все еще отображает видео 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>';
  }
?>

edit edit: Ложная тревога. Мне кажется, что я что-то кешировал. Приведенный выше код является правильным и, похоже, работает.

1 Ответ

2 голосов
/ 10 марта 2019

Вы пытаетесь повторить что-то в своем утверждении эха.Функция 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>';
    }
?>
...