Шорткод аудиоплеера не отображается при использовании переменной


Я пытаюсь вызвать пользовательское мета-поле термина в звуковом шорткоде, который я разместил на пользовательской странице, над которой я работаю. Поле содержит ссылку на файл .mp3, который я загрузил в свою медиатеку. У меня есть оператор IF, который будет отображать аудиоплеер только вместе с текстом "Аудио", если поле действительно содержит ссылку на аудиофайл. Однако на переднем конце ничего не отображается, хотя в поле есть ссылка.

Я сделал var_dump на поле, и он вывел:

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

Вот код, который у меня в настоящее время есть в моем functions.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.

Author: Darren, 2018-09-17

1 answers

Заменить следующую строку

 $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>
 1
Author: Aparna_29, 2018-09-17 07:02:07