使用变量时不显示音频播放器快捷码

时间:2018-09-17 作者:Darren

我正在尝试调用音频快捷码中的自定义术语元字段,该快捷码已放置在我正在处理的自定义页面上。该字段包含指向的链接。已上载到媒体库的mp3文件。我有一个IF语句,它只会显示音频播放器以及文本“audio”,如果该字段实际上包含指向音频文件的链接。然而,前端没有显示任何内容,即使在该领域有链接。

我在字段上进行了var\\u转储,并输出:

string(95) "echo do_shortcode([audio src="http://www.foo.com/wp-content/uploads/2018/07/audio.mp3"])"

这是我目前在函数中拥有的代码。php:

function first_audio() {
                        $terms = get_the_terms($post->ID, \'firstb\');
                        $result = "";
                        if (is_array($terms) || is_object($terms)){
                        foreach ($terms as $term) {
                            $term_id = $term->term_id;
                            $result .= \'echo do_shortcode([audio src="\'.  get_term_meta($term_id, \'audioreco_64856\', true)  .\'"])\';

                        }
                    }
                    if (!empty(get_term_meta($term_id, \'audioreco_64856\', true))) {
                        return $result;}
                    }
下面是我页面上的代码:

$first_audio = first_audio();
if (!empty($first_audio)) { ?>
<p><?php first_audio(); ?></p>
<?php }
    ?>
我也试着回应first_audio(); 但这只是重复了整个链接,就像var_dump

1 个回复
最合适的回答,由SO网友:Aparna_29 整理而成

更换以下行

 $result .= \'echo do_shortcode([audio src="\'.  get_term_meta($term_id, \'audioreco_64856\', true)  .\'"])\';
使用

$result .=  do_shortcode(\'[audio src="\'.  get_term_meta($term_id, \'audioreco_64856\', true)  .\'"]\');
回显函数结果

<p><?php echo first_audio(); ?></p>

结束

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗