PHP 在简码标签外显示简码内容

PHP displaying content of shortcode outside of shortcode tags

我正在尝试输出

[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('youtube-playlist') 来自高级自定义字段。

不幸的是得到的输出是

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

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

如有任何帮助,我们将不胜感激,谢谢!

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

您必须改用 get_field 函数。尝试将您的代码更新为以下

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