将 ACF 字段传递给简码

Passing ACF Field To Shortcode

我目前正在创建一个小插件,它只制作自定义 post 类型。我想添加一个短代码,可以轻松地将音频播放器放在页面上。 MP3 的 URL 可以根据 post 更改,我正在使用高级自定义字段 (ACF) 从用户那里获取 URL。如何将 URL 字段传递给简码?这是我的简码函数:

// Add A Shortcode for the MP3 Player
function sermon_audio_shortcode() {
    // Code
    $output = '<script>';
    $output .= 'audiojs.events.ready(function() {';
    $output .= 'var as = audiojs.createAll();';
    $output .= '});';
    $output .= '</script>';

    $mp3url = get_field('f1sermon_mp3_url');

    $output .= '<audio src="';
    $output .= 'echo $mp3url';
    $output .= '" preload="auto" />';

    return $output;
}
add_shortcode( 'sermon-audio', 'sermon_audio_shortcode' );

我只试过 $output .= echo $mp3url; 但这也不正确。简码工作正常,但 URL 只是 "echo $mp3url" 有什么想法吗?

我相信您只需要正确连接字符串即可:

$output .= $mp3url;

或者将最后三行合并为一行:

$output .= '<audio src="' . $mp3url . '" preload="auto" />';