Шорткод аудиоплеера не отображается при использовании переменной
Я пытаюсь вызвать пользовательское мета-поле термина в звуковом шорткоде, который я разместил на пользовательской странице, над которой я работаю. Поле содержит ссылку на файл .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
.
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>