I am attempting to use :
add_filter( 'the_content', 'filter_function_name' );
To find all of the anchor tags in my post which link to a .mp3 file, and then replace them with a jplayer instance that would play the file, instead of just having the link to be file being displayed.
So, I am trying to get all of the anchors tags that are output by the_content to be replaced by instances of the following html and js:
html:
<div id="jquery_jplayer_#uniqueid" class="jp-jplayer"></div>
<div id="jp_container_#uniqueid" class="jp-audio">
<div class="jp-type-single">
<div class="jp-gui jp-interface">
<ul class="jp-controls">
<li><a href="javascript:;" class="jp-play" tabindex="1">play</a></li>
<li><a href="javascript:;" class="jp-pause" tabindex="1">pause</a></li>
<li><a href="javascript:;" class="jp-stop" tabindex="1">stop</a></li>
<li><a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute</a></li>
<li><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute</a></li>
<li><a href="javascript:;" class="jp-volume-max" tabindex="1" title="max volume">max volume</a></li>
</ul>
<div class="jp-progress">
<div class="jp-seek-bar">
<div class="jp-play-bar"></div>
</div>
</div>
<div class="jp-volume-bar">
<div class="jp-volume-bar-value"></div>
</div>
<div class="jp-time-holder">
<div class="jp-current-time"></div>
<div class="jp-duration"></div>
<ul class="jp-toggles">
<li><a href="javascript:;" class="jp-repeat" tabindex="1" title="repeat">repeat</a></li>
<li><a href="javascript:;" class="jp-repeat-off" tabindex="1" title="repeat off">repeat off</a></li>
</ul>
</div>
</div>
<div class="jp-title">
<ul>
<li>Music Player</li>
</ul>
</div>
<div class="jp-no-solution">
<span>Update Required</span>
To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>.
</div>
</div>
</div>
Javascript:
<script type="text/javascript">
$(document).ready(function(){
$("#jquery_jplayer_#uniqueid").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
m4a: "#the_url_from_the_anchor_tag",
}) //.jPlayer("play");
},
swfPath: "js/jplayer",
supplied: "m4a, mp3, oga",
wmode:"window",
cssSelectorAncestor: '#jp_container_#uniqueid'
});
});
</script>
Any help is appreciated. Thanks.
You well need to add a filter to
the_content
and alter the markup. This should replace the markup for<a>
tags having URLs ending in.mp3
, which you mentioned specifically in a comment.If it were me, I’d work out a way to make that javascript a bit more flexible so that I could register and enqueue it, rather than print it independently for each audio file.
I did this to find all audio, video tag and mp3, m4v links and turn theme in a jPlayer
http://jsfiddle.net/onigetoc/vaot2auz/