<p>In your PHP loop... maybe you can put the urls in a data attribute</p>
<button rel='song-switch' data-song-url='song-url-a'>
play
</button>
<button rel='song-switch' data-song-url='other-song-url'>
play
</button>
...
console.clear();
// I'd normally write this in plain JavaScript - but since you are using WordPress - it has jQuery already
function switchTrack(url) {
// your code...
alert('play the song ' + url);
}
// get references to the HTML(DOM) elements
var $switches = $('[rel="song-switch"]');
// add event listeners to each switch
$switches.each( function() {
// $(this) refers to each switch
$(this).on('click', function() {
var url = $(this).data('song-url'); // get the value of that attr
//
switchTrack(url); // pass it into your function - to load a new track
// and this is where you'd work with the player's api...
// consider wrapping your current code in a function - or breaking it into some reusable functions
});
});
// yes... you should use event delegation... but you can look that up in the future.
Из того, что я вижу в вашем коде - у вас, вероятно, нет файла сценария / или вы его не используете - поэтому не забудьте поставить этоJS в теге скрипта / или вообще - просто убедитесь, что он в нужном вам месте.
Здесь вы можете узнать больше о jQuery и всех его функциях: https://jquery.com/
https://jsfiddle.net/sheriffderek/teLm7drn
а также ... имейте в виду, что с WordPress ... вам нужно обернуть свой код jQuery примерно так:
(function($) {
// $ Works! You can test it with next line if you like
// console.log($);
})( jQuery );