WP: вывести значение ACF-поля в шорткод

MrDesigner
На сайте с 31.01.2008
Offline
150
293

Никак не могу победить, подскажите, плз.

WordPress. С помощью плагина ACF создал простое текстовое поле с именем

video_recipe

Туда вбивается ссылка с Youtube, допустим, такая: https://youtu.be/WVkuS6E5ZRg

Если поле со ссылкой непустое, через шорткод ролик публикуется на сайте.

Конструкция шорткода:

[arve url="https://youtu.be/WVkuS6E5ZRg"]

Как корректно вывести ролик через шорткод? Такая конструкция не работает:

<?php

$video_recipe = get_field( "video_recipe" );
if( $video_recipe )
{echo "<div class='video_recipe'>

<?php echo do_shortcode ( '[arve url="$video_recipe"]' ) ; ?>

</div>";
} ?>
Samail
На сайте с 10.05.2007
Offline
334
#1
MrDesigner:
<?php echo do_shortcode ( '[arve url="$video_recipe"]' ) ; ?>

У вас текст $video_recipe вставляется, а не переменная. Ещё и блок php внутри php

 <?php
$video_recipe = get_field( "video_recipe" );
if( $video_recipe ) {
echo '<div class="video_recipe">';
echo do_shortcode ( '[arve url="'.$video_recipe.'"]' ) ;
echo '</div>';
} ?>

И если ссылка на ролик уже есть, то зачем шорткод нужен? Сам шорткод то хоть работает?

IL
На сайте с 20.04.2007
Offline
418
#2
MrDesigner:
создал простое текстовое поле с именем

А почему не oembed?

https://www.advancedcustomfields.com/resources/oembed/

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
MrDesigner
На сайте с 31.01.2008
Offline
150
#3
Samail:
И если ссылка на ролик уже есть, то зачем шорткод нужен? Сам шорткод то хоть работает?

С вашей помощью заработало как надо, спасибо!

Работу шорткода, естественно, проверил в первую очередь.

---------- Добавлено 10.05.2020 в 12:24 ----------

ivan-lev:
А почему не oembed?

Спасибо за подсказку, но мне этот способ немного неудобен - именно через шорткод нужно.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий