PHP在短代码标签之外显示短代码的内容

时间:2016-11-14 08:18:05

标签: php wordpress youtube advanced-custom-fields shortcode

我试图输出

[embedyt]http://www.youtube.com/embed?layout=gallery&listType=playlist&list=*some-playlist*[/embedyt]

在Wordpress中使用高级自定义字段和YouTube插件的组合。

我的代码是:

        <?php 
echo do_shortcode('[[embedyt]' . the_field('youtube-playlist') . '[/embedyt]]');
        ?>

其中[emedyt]代码来自嵌入YouTube,而the_field(&#39; youtube-playlist&#39;)来自高级自定义字段。

不幸的是输出的是

http://www.youtube.com/embed?layout=gallery&listType=playlist&list=*some-test-playlist*[embedyt][/embedyt]

我不明白我的PHP出错了,我有不同的变化,比如使用变量和不同类型的连接,但我显然错过了一些东西。

非常感谢任何和所有帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

您正在调用the_field函数,该函数实际打印自定义字段的值,但实际上您需要将值传递给do_shortcode函数而不是显示它。

您必须使用get_field功能。尝试将代码更新为以下

<?php echo do_shortcode('[[embedyt]' . get_field('youtube-playlist') . '[/embedyt]]'); ?>