広告 WordPress関連

Post Snippetsを使ったaudiojsのプレイヤーとプレイリストを兼用するショートコードの作成

スポンサーリンク

 

前回の記事では、jQuery の each() を使い、複数の audiojsライブラリのプレイヤーを配置する際にコンフリクトを防ぐjQueryスクリプトを紹介しました。 今回は、そのjQueryスクリプトを少し改良し、WordPress 上で audiojs プレイヤーを簡単に使い回し出来て、プレイリストも扱えるように出来る Post Snippets プラグインを利用したショートコードの作成方法を紹介します。

 

audiojsプレイヤーの使い勝手を向上させるために

WordPress で audiojs プレイヤーを使うには、投稿ページに<audio>タグを含めた HTML を記述し、その要素に対応する jQuery や CSS と連携させる必要があります。 これでは使い勝手が悪いですね。

そこで、Post Snippets プラグイン を使って、(1)-オプション付きショートコードを作ります。 このショートコードは、(2)-audiojs ライブラリを制御する jQuery(3)-スタイルを調整する CSS と連携し、ショートコードオプションに応じたaudiojsプレイヤーやプレイリストを簡単に実現できるようになります。  (1)- 〜 (3)- の詳細については後述します。

これにより、WordPress 上でaudiojsプレイヤーの汎用性を高めて使い勝手を向上させることができます。

今回のオプション付きショートコードで実現できる主な仕様
  • audiojs のプレイヤーとプレイリストを兼用できること
    ショートコードで、単体のプレイヤーとしても、複数の曲を並べたプレイリストとしても利用できます。

  • audiojs プレイヤーのスキンカラーを指定できること(black、red、green、blue)
    ショートコードのオプションでスキンの色を指定できます。サイトのデザインや用途に合わせて、色を自由に選択できます。
  • オプション指定で、audiojs プレイヤーのサイズやセンタリングを指定できること
  • プレイリスト使用時に、選択中の曲情報を audiojs プレイヤーの下部に表示できること
    リストから曲を選ぶと、その曲名などの情報がプレイヤーの下に自動で表示され、視認性と操作性が向上します。必要に応じて非表示にもできます。
  • プレイリスト使用時に、リストをクリック(選曲)した際、audiojs プレイヤーの指定位置へ自動スクロールできること
    スクロール位置のオフセット(ずらし幅)もオプションで調整可能です。

 

(1)- オプション付きショートコードの作成

Post Snippetsプラグインのインストールや使い方は、「小技・事例集」を参照してください。

Post Snippets(バージョンは3.1.6) 設定画面は以下の通りで、番号を振ったエリアに従って説明します。 (Post Snippets の最新バージョンは4.xになっていますが、一部不具合と使い勝手が悪く3.1.6バージョンを使っています。)

先ず、「Add New Snippet」ボタンを押します。

エリアのUntitledにショートコードの名称を記入します。 ショートコード名を、 AudioJS_player にしました。

エリアに下のショートコード用HTML codeをコピペします。

HTML codeの説明

  • 1行目:<div class="js_player ..."> で 1行目から10行目をラップしています。このラップされた js_player 要素には、後述する(2) audiojs ライブラリを制御する jQuery の each() によって一意のインデックス(連番)が割り振られるため、複数のプレイヤーを区別できます。
    st-list-border は、リストに下線を付加するAffinger6用のclassを指定しています。
  • 2行目:<input> タグで scroll_offset(数値)を jQuery に渡し、プレイリスト使用時にリストをクリック(選曲)した際、audiojs プレイヤーの指定位置へ自動スクロールさせます。
  • 4行目:<audio> タグは audiojs ライブラリによって audiojs プレイヤーに変換されます。
  • 6行目:プレイリスト使用時、class="track-details" の要素に選択中の曲情報が表示されます。style="display:none" を指定すれば非表示にできます。 また、st-marqueeをクラス指定することで、Affinger6の流れる文字を実現しています。
  • 8行目:{content}で囲み型ショートコードになります。 
    単独プレーヤーで使用するには[AudioJS_player〜][/AudioJS_player]と表記すれば、単独のプレーヤーになり、HTMLcodeの4行にある  src="{src}" オプションの srcに音声ファイル(url)を代入すれば当該音声ファイルが再生されます。 
  • プレイリストで使用するには[AudioJS_player〜]と[/AudioJS_player]の間に曲リスト例(下記)を記述するとプレイリストとして機能します。 <li class="last">のlastで再生が停止します。 lastを削除すると、最終曲から最初の曲にループ(エンドレス)再生します。
  • なお、<p>タグで{content}を囲んでいるのは、WordPressの自動整形機能による<p>タグエラーを防止するためです。(ChromeのHTMLチェッカーで<p>タグエラーになるの防ぎます)

ショートコードのオプション(変数)について
{content}を除き、{}内の文字列が変数(=オプション)になります。 下に変数の意味を示します。

オプション 意味 Default値
js-centering プレーヤーを中央に配置する時、player_center を記述 player_center
js-skin_color プレーヤーのスキンカラー(black、red、green、blue)
js-size プレーヤーの横幅サイズ。 px300で横幅300pxになる。 px300
my_style div.js_player要素のスタイルを直書きする。
scroll_offset プレイリスト使用時に、リストをクリック(選曲)した際、audiojs
プレイヤーの指定位置へ自動スクロール(  0 でスクロールしない)
0
src 単独のプレーヤー時、音源ファイルURLを指定
pre preloadの略、音声ファイルを先読みするか否かを指定する
list-title_disp 選択中の曲情報が表示/非表示 noneで非表示 none

Variables(変数)をカンマ区切りで記述し、「 =」の後がデフォルト値になります。 下で示す内容を  エリアに記述します。

 Variables
pre=none,src=url.mp3,js-centering=player_center,js-skin_color,js-size=px300,my_style,list-title_disp=none,scroll_offset=0

エリアにショートコード化するので、レ点を入れます。  エリアにはPHPを使っていないので無記入のままです。

エリアにショートコードの簡単な説明を記載します。(下記は参考です)

終点を[/AudioJS_player]で囲むショートコード。 
プレイヤー単独で使う時は、[AudioJS_player ... ]のsrcに音源ファイルURLを記入し[/AudioJS_player]を記述 プレイリストで使う時は、[AudioJS_player ... ]の後に音声ファイルSRCと楽曲情報を含んだol liリストを記述し[/AudioJS_player]でサンドイッチする。
詳細はhttps://pianoforte32.com/creating-audiojs-player-and-playlist-shortcodes-using-post-snippets/
以上で、(1)-オプション付き囲み型ショートコード [AudioJS_player ... ][/AudioJS_player]  の完成です。 

 

(2)-audiojs ライブラリを制御する jQuery

 

Step
1
公式GitHubからaudio.js ライブラリをダウンロードする

  Source on Github リンクをクリックすると、GitHubのkolber/audiojs ページに遷移します。


  • step.1

    kolber/audiojsページの左にある 赤矢印のボタンを押して、defaultのmasterから gh-pages を選択(レ点)します。(下のスクショ画像参照)


  • step.2

    gh-pages 画面に切り替わったら、右の [Code] ボタンを押して、Daunload ZIP をクリックすると audiojs-gh-pages.zip がダウンロードできます。 


  • step.3

    ダウンロードしたaudiojs-gh-pages.zipファイルを解凍すると、下に示す様にaudiojsフォルダーの存在が確認できます。 このaudiojsフォルダーのファイルは、以前ダウンロード出来た内容と同じものです。 audio.js Playerで使用するファイルは、赤矢印で示す3つのファイルです。

    audiojsフォルダーをWebサイトのドメイン(例えばWordpressが入っている場所)にアップロードして使います。

    1. audio.min.js
    2. audiojs.swf
    3. player-graphics.gif

 

Step
2
audiojs ライブラリを制御する jQueryスクリプトの設置

  • 下の、 jQueryスクリプト全てをHTMLの</body>タグ直前にコピペします。
  • 2行目:先ほどアップロードした場所のURLをsrcに記述して、audiojs ライブラリを読込ます。
  • 4行目:以降が、audiojs ライブラリを制御する jQueryスクリプトになります。

備考:
複数の audiojs プレイヤーを配置した場合に、排他的に再生されるます。 つまり、ページ内に複数のプレイヤーがある場合、1 つを再生すると他のプレイヤーは自動的に停止します。これにより、複数の音が同時に流れるのを防ぎます。

 

(3)-スタイルを調整する CSS

WordPressの Stylesheet (style.css)に下のCSSをコピペします。

 

[AudioJS_player ... ][/AudioJS_player]ショートコードの設置例

Case
1
単体プレーヤで使用する

ショートコード中の:赤文字が単体プレーヤで使用する時のオプションになります。

 shortcode
[AudioJS_player pre="none" src="音声ファイル.mp3"js-centering="player_center" js-skin_color="red" js-size="px300"
my_style="" list-title_disp="none" scroll_offset="0"][/AudioJS_player]

例−1:プレーヤのスキン色を red に、横幅サイズを300px 、プレーヤをセンタリング
第1楽章:ヘンデルのバイオリン・ソナタ 第4番

例−2:プレーヤのスキン色を blue に、横幅サイズを最大 、プレーヤをセンタリング
第2楽章:ヘンデルのバイオリン・ソナタ 第4番

例−3:プレーヤのスキン色を green に、横幅サイズを300px 、センタリング解除
第3楽章:ヘンデルのバイオリン・ソナタ 第4番

例−4:プレーヤのスキン色を Default に、横幅サイズを最大 、センタリング解除
第4楽章:ヘンデルのバイオリン・ソナタ 第4番

注記:横幅サイズが小さいスマホで見ると、全てのプレーヤサイズは300pxになります。

 

Case
2
プレイリストで使用する: 例1
【曲目クリック時にオフセット移動】

プレイリストで使用する時は、[AudioJS_player]と終点[/AudioJS_player]の間に曲目リストの<ol>タグを挿入する。
オプション:scroll_offset="80"にしているので、曲目リストのクリック時にプレーヤの上部80pxオフセットして移動

 shortcode
[AudioJS_player player="js_player" pre="none" src="url.mp3" js-centering="player_center" js-skin_color="red" js-size=""
my_style="max-width:500px;margin:0 auto;" list-title_disp="none" scroll_offset="80"]
<ol class="audio" style="list-style: none;margin-top: 20px;">
<li class=""><a href="#!" data-src="Sound1.mp3">第1楽章:Affettuoso (02:54)</a></li>
<li class=""><a href="#!" data-src="Sound2.mp3">第2楽章:Allegro (02:33)</a></li>
<li class=""><a href="#!" data-src="Sound3.mp3">第3楽章:Larghetto (02:59)</a></li>
<li class="last"><a href="#!" data-src="Sound4.mp3">第4楽章:Allegro (02:49)</a></li>
</ol>
[/AudioJS_player]
注記:赤文字が例1に対応するオプションを示します。 

ヘンデルのバイオリン・ソナタ 第4番
(Vn:グリュミオー /チェンバロ :ラクロワ ) 1966年録音

 

Case
3
プレイリストで使用する: 例2
【曲情報を流れる文字で表示】

プレイリストで使用する時は、[AudioJS_player]と終点[/AudioJS_player]の間に曲目リストの<ol>タグを挿入する。
オプション:list-title_disp=" " noneを削除しているので、選択中の曲情報を audiojs プレイヤーの下部に流れる文字列で表示されます。

 shortcode
[AudioJS_player player="js_player" pre="none" src="url.mp3" js-centering="player_center" js-skin_color="red" js-size=""
my_style="max-width:500px;margin:0 auto;" list-title_disp=" " scroll_offset="0"]
<ol class="audio" style="list-style: none;margin-top: 20px;">
<li class=""><a href="#!" data-src="Sound1.mp3">第1楽章:Affettuoso (02:54)</a></li>
<li class=""><a href="#!" data-src="Sound2.mp3">第2楽章:Allegro (02:33)</a></li>
<li class=""><a href="#!" data-src="Sound3.mp3">第3楽章:Larghetto (02:59)</a></li>
<li class="last"><a href="#!" data-src="Sound4.mp3">第4楽章:Allegro (02:49)</a></li>
</ol>
[/AudioJS_player]
注記:赤文字が例2に対応するオプションを示します。 

ヘンデルのバイオリン・ソナタ 第4番

 

以上、Post Snippetsを使ったaudiojsのプレイヤーとプレイリストを兼用するショートコードの作成でした。

 

スポンサーリンク

 

スポンサーリンク