『 WordPressにFlashを貼り付けるプラグインWP-Al-SWFObject 』

2009 年 4 月 19 日

English is here.

WP-Al-SWFObject
WordPressのエントリにswfを簡単に貼り付けるためのプラグインを作ったので紹介します。WP-SWFObjectよりも細かくパラメータを指定できます。

ダウンロード
使い方
使い方(エントリー以外の場所に貼り付ける)
管理画面
使用例
使用するSWFObjectのバージョン
ライセンス

・ダウンロード
>>Download (英語版)
>>Download (日本語版)

・使い方

  1. ダウンロードしたzipを解凍するとwp-al-swfobjectフォルダができるので、フォルダごとサーバのwp-content/pluginsディレクトリにアップロードします。
  2. WordPressの設定画面->プラグインから、WP-Al-SWFObjectプラグインを有効化します。
  3. エントリー内のswfを貼り付けたい位置に以下のコードを記述します。[/embedSWF]は[/embedSWF]に置き換えてください。
[embedSWF]swf, width, height, align, version, expressInstall, flashvars, params, attributes[/embedSWF]

赤字のパラメータは必須、黒字のパラメータはオプション(省略可能)です。

  • swf(必須) ・・・ 貼り付けるswfへのパスを記述します。
  • width(省略可) ・・・ swfの幅を指定します。省略するとプラグインの設定ページで指定したデフォルト値が用いられます。
  • height(省略可) ・・・ swfの高さを指定します。省略するとプラグインの設定ページで指定したデフォルト値が用いられます。
  • align(省略可) ・・・ swfを貼り付ける際の位置を指定します。左寄せ、右寄せ、中央寄せに対してそれぞれleft、right、centerで指定します。省略すると特に指定されません。
  • version(省略可) ・・・ 必要なFlashPlayerのバージョンを記述します。省略すると9.0.0となります。
  • expressInstall(省略可) ・・・ プレイヤーが要件を満たさない場合に表示するswfへのパスを記述します。省略するとSWFObjectデフォルトのexpressInstall.swfを表示します。
  • flashvars(省略可) ・・・ HTMLからflashに渡す変数(flashvars)を、{変数名1:”値1″, 変数名2:”値2″}という形式で記述します。
  • params(省略可) ・・・ swfを貼り付ける際のパラメータを、flashvarsと同形式で記述します。
  • attributes(省略可) ・・・ swfを貼り付ける際のhtml属性を、flashvarsと同形式で記述します。

・使い方(エントリー以外の場所に貼り付ける)
ヘッダーやサイドバーなど、エントリ以外の場所に貼り付ける場合は、貼り付けたい場所で以下のphp関数を呼び出します。引数として、エントリー内に貼り付ける場合のタグと同様のものをまるごと文字列で渡します。

<?php wp_al_swfobject_echo('[embedSWF]swf, width, height, align, version, expressInstall, flashvars, params, attributes[/embedSWF]'); ?>

・管理画面
WP-Al-SWFObjectは管理画面から各パラメータのデフォルト値を設定できます。
デフォルト値はWP-Al-SWFObjectによって貼られる全てのswfに適用されます。
同じ変数を複数の箇所で設定した場合の優先順位は
[embedSWF]タグ内 > 設定画面の{変数名1:”値1″, 変数名2:”値2″} > 設定画面の補助設定(paramsのみ設定可)
となっており、優先順位の高い変数に上書きされます。また、flashvars、params、attributesに関しては各変数ごとに上書き判定がなされます。

例えば、管理画面からflashvarsの項目に

aaa:"30", bbb:"50"

を設定すると、WP-Al-SWFObjectを使って貼る全てのswfに aaa=”30″, bbb=”50″ としてflashvarsが渡されます。この状態で、以下のようにしてswfを貼り付けます。

[embedSWF]hoge.swf,,,,,,{aaa:"10"}[/embedSWF]

この場合、タグ内でデフォルト値と同名の変数名aaaでflashvarsを指定しているため、デフォルト値は変数aaaに対して適用されません。つまり、このswfは aaa=”10″, bbb=”50″ としてflashvarsを受け取ることになります。

・使用例
オプションを指定せずに貼り付ける(管理画面で幅300、高さ50に設定してあります)

[embedSWF]hoge.swf[/embedSWF]

This movie requires Flash Player 9.0.0

幅と高さを指定して貼り付ける

[embedSWF]hoge.swf, 200, 100[/embedSWF]

This movie requires Flash Player 9.0.0

右寄せにしてflashvarsを渡す

[embedSWF]hoge.swf, 200, 100, right,,,{aaa:"10"}[/embedSWF]

This movie requires Flash Player 9.0.0

htmlのidとname属性を付加する

[embedSWF]hoge.swf, 200, 100,,,,{},{},{id:"sample", name:"sample"}[/embedSWF]

This movie requires Flash Player 9.0.0

全パラメータを指定する(プレイヤーは9.0.0以上、プレイヤーバージョンが低い場合はhttp://hogehoge.jp/alt.swfを表示、aaa=10という変数をswfに渡す、右クリックメニューを出さない、htmlとswfの通信を常に許可する、htmlのidとname属性をsampleとする)

[embedSWF]hoge.swf, 400, 360, center, 9.0.0, http://hogehoge.jp/alt.swf, {aaa:"10"}, {menu:"false", allowScriptAccess:"always"}, {id:"sample", name:"sample"}[/embedSWF]

This movie requires Flash Player 9.0.0

・使用するSWFObjectのバージョン
管理画面から切り替えられます(デフォルトでは2.1)。
バージョン1.5~2.2まで対応していますが、現在のところ1.5のattributesと2.2の新機能であるCallback methodは指定できません。

・ライセンス
元にしたWP-SWFObjectがGPLライセンスなのでGPLでお願いします。

追記 09.04.24
使用方法が2エントリに分割されていたので、1つにまとめました。
swfの幅と高さが省略可能となりましたので、それに伴いエントリ内容を修正しました。
プラグインの紹介に特化するため、前段部分の文章(下記のもの)を削除しました。

前回のエントリにも書いたのですが、WordPressにswfを貼り付けるにはWP-SWFObjectプラグインが便利です。が、どうにもparamsとattributeを指定できないようなので、プラグインを自作しました。(WP-SWFObjectでのflashvarsの渡し方はコメント欄でまつもとさんに教えていただきました、ありがとうございます!)

追記 09.05.11
SparkProjectにコミットしました。

追記 09.05.18
英語版エントリを書きました。

追記 09.06.30
v2.1にバージョンアップしました。wp_al_swfobject_echo関数により、エントリー以外の場所でもswfの貼り付けが可能となりました。

« 
» 

24 Responses to “WordPressにFlashを貼り付けるプラグインWP-Al-SWFObject”

  1. 1 まつもと
    4月 20th, 2009 at 8:29 PM

    これは素晴らしいですね!
    さっそく導入させてもらいました。

    それで、管理画面を使えるようにちょっと改造してみました。
    http://sncr.jp/wpalswfobject/wp-al-swfobject.txt

    変更した点は、僕が改造したあとPHPファイルの文字コードの関係でどうしてもエラーになったのでUTF-8Nにしたところと、
    管理画面を使うためにSWFObjectのバージョンをwp_al_swfobject_paramsのswfobject_versionで指定するようにしたところです。

    管理画面ではflashvarsやparamsの初期値も設定できるようにしてみたんですがいかがでしょうか?
    flashvarsなどはいまのところ、それぞれ何も指定がなかったら初期値、何か指定があったらすべて上書きするようになっていますが、
    本当はそれぞれの変数ごとに、指定があったら上書き、それ以外は初期値のままにしたいんです。
    でもどうやるのかわからなくて断念しました。

    僕はPHPをあまりさわらないので、あやしいところも多いかと思います。
    よかったら、気になる部分を直していただけると嬉しいです。

  2. 2 alumican
    4月 20th, 2009 at 9:47 PM

    >まつもとさん

    おおおお!まさか僕のやっつけプラグインを改良してくださるとは。ありがとうございます!
    本格的なプラグインになっていて嬉しいです。

    > 本当はそれぞれの変数ごとに、指定があったら上書き、それ以外は初期値のままにしたいんです。

    これができるとさらに便利ですね。すぐ思いつく限りだと、最初に初期値で変数を全てセット→タグ内のパラメータをforeachで回す→かぶっている変数なら上書き、そうでなければ新規で変数作成、でしょうか。僕にできるようであればやってみます!

    あと、僕は実はPHPさっぱりできないんです(笑)
    ActionScriptのノリで全部やってますので、変なとこがあればこちらこそご指摘よろしくお願いします。

  3. 3 まつもと
    4月 21st, 2009 at 12:17 AM

    なるほど、そういうふうにやれば変数ごとに取得できるんですね。
    一括指定したい部分だけ省略できるんですごく便利になりますね。

    実はもうひとつやりたいことがあって、高さと幅の省略です。
    [embedSWF]hoge.swf[/embedSWF]
    こんな感じで貼れたらとても簡単で良いですよね。
    swfが圧縮さえされていなければ、高さと幅は取得できるようです。
    http://www.studio-bloom.org/archives/1204
    それで僕もそのとおりにやってみました。
    http://sncr.jp/wpalswfobject/getswfsize.php
    きちんと取得できているようです。
    圧縮されたswfの方についても今調べているところです。
    こちらもぜひ実現したいですね。

  4. 4 alumican
    4月 21st, 2009 at 7:34 PM

    >まつもとさん

    サイズ取得もできればさらに素敵ですね。
    世界行けますよ世界(笑)
    情報ありがとうございます^^

  5. 5 alumican
    4月 22nd, 2009 at 3:33 AM

    とりあえずflashvars、params、attributesの変数毎指定を実装完了

  6. 6 まつもと
    4月 22nd, 2009 at 8:26 PM

    wp_al_swfobject_merge_object関数sugeeeeee!!
    すばらしいですねほんとに。ありがとうございます。
    スペシャルサンクスまで入れてもらってありがとうございます。

    便利な関数を作っていただいたので、さらに活用して、もともとwp-swfobjectにあったparamsの簡単設定を復活させたコードを書いてみました。
    http://sncr.jp/wpalswfobject/wp-al-swfobject.txt

    あと高さと幅の取得はとっても難しいようなので、
    かわりに初期値を設定できるようにしてみました。
    一人で使うなら、これでもじゅうぶん便利だと思うんです。
    いかがでしょう?

    使えそうなところがあったら取り入れてくださると嬉しいです。

  7. 7 alumican
    4月 24th, 2009 at 12:19 AM

    おお、これはありがたいです!早速取り入れさせてもらいました!

    そろそろ当初の仕様とはだいぶ違ってきたので、メジャーバージョンアップしました。
    それに伴い、このエントリも修正しました。

    あと、勝手ながら管理画面下の部分にAuthorとしてクレジットさせていただいたのですがよろしいでしょうか。もしご迷惑だったり、クレジット名の変更があれば仰ってください。

    最近たて込んでいてなかなかアップデートが難しいのですが、
    これからも何かあればよろしくお願いします。

  8. 8 まつもと
    4月 24th, 2009 at 2:23 PM

    僕なんかほとんど口ばかり出しているだけなんですがクレジットに入れていただけて嬉しいです。ありがとうございます。

    いやぁ、これで余計なことを考えずに手軽にswfを貼れる、良いプラグインになりましたね。
    細かいところの解説も書いていただいてありがとうございます。
    僕も使いながら、修正やバグを見つけたらまた報告しますね。

    今すごく細かいですけどちょっと見つけました。
    ・4行目のアドレスが古いみたいです。
    ・252行目のsupタグとその中身も消していただけると。
    バージョンを表すだけの変数だったので、まぎらわしいし不要と思い削除したのですが見落としていました。すみません。
    どちらも重要な部分ではないのでお暇なときにでもお願いしますね。

  9. 9 alumican
    4月 24th, 2009 at 4:24 PM

    >まつもとさん

    修正しました、ありがとうございます!
    プラグインのバージョン情報はせっかくなので右端に表示するようにしました。

  10. [...] 採用させていただいたのは、 blog.alumican.netさんのWP-Al-SWFObjectです。 導入方法は [...]

  11. 11 リバーウォーカー
    6月 29th, 2009 at 10:54 PM

    はじめまして、WordPressの初心者です。
    Flashで作ったタイトルバナーを使用したくて、色々検索してWP-Al-SWFObjectを見つけました。
    インストールしますと、エントリーでのFlash Movieは動いたのですが、タイトルバナーにSWFファイルの張り付け方法が分からないのですが、ご教示いただけないでしょうか?
    よろしくお願いします。

  12. 12 alumican
    6月 30th, 2009 at 2:39 PM

    > リバーウォーカーさん

    こんにちは。
    ご使用いただきありがとうございます。
    ご指摘の通り、エントリー以外への貼り付けの実装を忘れていました(汗)
    取り急ぎ実装しましたので、最新版(v2.1)をダウンロードいただきお試しください。
    もし万が一何か不具合がございましたらご連絡ください。
    使い方(エントリー以外の場所に貼り付ける)

  13. 13 かやまっち
    10月 11th, 2009 at 4:53 PM

    古い記事に質問で申し訳ありませんが
    1.貼り付けについて
    2.SWFのUP場所
    貼り付けのパスについてですが
    どこからのパスを入れればいいのでしょうかまたSWFのUP場所ですが
    wp-content/plugins/wp-al-swfobject/
    のなかでしょうか
    よろしくお願いシアンス

  14. 14 alumican
    10月 11th, 2009 at 8:14 PM

    >かやまっちさん

    ご質問ありがとうございます。
    swfのアップ場所はどこでも大丈夫です。
    貼り付ける際のswfへのパス指定は以下の方法があります。

    1. そのswfが貼り付けられているページを起点とした相対パス。
      例えばこのエントリだとhttp://blog.alumican.net/2009/04/19_233117が起点となります。
    2. /から始まるサーバパス。
    3. httpから始まる絶対パス。

    また何か質問などありましたらよろしくお願いします。

  15. 15 かやまっち
    10月 12th, 2009 at 1:05 PM

    早速のご回答ありがとうございます
    WP-Al-SWFObject
    ご使用させていただきます
    ありがとうございました

  16. [...] リにswfを簡単に貼り付けるためのプラグインです。 alumican.net http://blog.alumican.net/2009/04/19_233117 [...]

  17. [...] WP-Al-SWFObject 「WP-Al-SWFObject」を利用させてもらいました。 おそらく、修了生の皆さんが受けているWordPressでの構築の場合必要となるはずです。 「集客できるホームページ講座|Webコント [...]

  18. 18 ns
    11月 27th, 2009 at 4:15 PM

    WordPressにFlashを貼り付ける方法を調べていてたどり着きました。
    そこで質問なのですがこのプラグインを使用してWordPressの背景部分をFlashにすることは可能でしょうか?
    お暇な時にでも教えてもらえると助かりますm(__)m

  19. 19 alumican
    12月 4th, 2009 at 1:35 AM

    >nsさん

    返事が遅くなってすみません。

    現状では、貼り付けたSWFをCSSでいじるというのは想定していなかったので、貼り付けタグにはランダムなid属性を持たせています。

    僕も実験していないので確証はないのですが、WP-Al-SWFObjectでは難しいのではないかと思います。すみません。。。

  20. 20 お役立ちメモ | test blog
    1月 14th, 2010 at 5:42 PM

    [...] FlashでSVG形式のベクターグラフィックを利用する http://www.adobe.com/jp/devnet/flash/articles/spark_project_svg.html [...]

  21. [...] WordPressにFlashを貼り付けるプラグインWP-Al-SWFObject [...]

  22. 22 Shingo
    5月 18th, 2010 at 8:06 PM

    WP-al-SWFObject を使ってみたいと思いますが,
    FlashPlayer 非対応時の代替画像(あるいは代替 html)の表示は可能でしょうか?
    よろしくお願いします.

  23. 23 alumican
    5月 19th, 2010 at 12:33 AM

    >Shingoさん

    こんにちは。
    代替HTMLのカスタマイズには現在のバージョンでは対応していません。すみません。

    wp-al-swfobject.phpの169行目

    $swf_alt = "This movie requires Flash Player ".$swf_version;

    を書き換えることで代替HTMLを一括して入れ替えることは可能です。

  24. 24 new Ibu4gin » Universal Gravitation
    6月 27th, 2010 at 7:51 PM

    [...] これつかってみた。便利!! 『 WordPressにFlashを貼り付けるプラグインWP-Al-SWFObject 』 [...]

Leave a Reply