『 WordPress2.8へのアップデートでShadowboxが効かなくなる件 』

2009 年 8 月 4 日

現在WordPress2.8へアップデートの影響によりShadowbox JSプラグインが効かなくなっており、ブログ内Flashの閲覧に不具合が出ています。現在対策中なので、少々お待ちください。対策が完了次第まとめます。

追記 09.08.04
Shadowboxが復活しました。
同じような目にあった人がサッと復帰できるようにまとめておきます。

どうしてこうなった
先日、WordPressをバージョン2.8にアップデートしました。
その際にShadowbox JSプラグインも3.0にアップデートされたのが原因でした。

最新版のShadowbox JSプラグインはphp4での動作を打ち切ってしまったようです。僕が使っているhetemlサーバはphp4なので、動かなくなってしまったわけです。
ググってみると、同じ症状の方の記事へ辿り着きました。

» hetemlでwordpressのプラグイン“Shadowbox JS”を使う場合の留意点

やはりphp4では動かなくなってしまったようです:(
まず、上記のサイト様に書いてある手順を追って、hetemlが配布している.phpファイルをphp5で動かす.htaccessファイルを導入してみました。ダウンロードした.htaccessファイルをサーバのルートディレクトリにおきます。

» レンタルサーバー「heteml」 – PHP5のご利用方法について

しかし、直りませんでした。
ブログをサブドメインで運営しているせいでしょうか。一応、メインのルートとサブドメインのルートの両方に.htaccessファイルを置いてみましたが、設定画面にShadowbox JSプラグインは表示されるもののshadowboxは動きません。ちなみに、僕の環境ではエラーは特に出ませんでした。この辺は人それぞれみたいですね。

強引に解決する
WordPressのプラグインとしてShadowboxを導入しているのでphp動作環境が必要なのであって、そもそも、本来のShadowbox.jsにphpは不要なはずです。じゃあプラグインじゃなくて普通にJavaScriptをインポートすればいいじゃない。どうせShadowbox JSプラグインの設定画面はいじったこと無かったですし。ふふん。

といわけでShadowboxを本家サイトからダウンロードして、適当な場所に設置。僕は /wp-includes/js/shadowbox/ 以下に置きました。そしてヘッダのテンプレート(外観→編集→header.php)の <header>~</header> タグ内に以下をハードコーディングします。shadowbox.js と shadowbox.css へのパスはアップロードしたディレクトリに変更してください。

<link rel='stylesheet' id='shadowbox-css-css'  href='/wp-includes/js/shadowbox/shadowbox.css' type='text/css' media='screen' />
<script type="text/javascript" src="/wp-includes/js/shadowbox/shadowbox.js"></script>
<script type="text/javascript">
  Shadowbox.init({
    /* 必要なplayerをインポートする */
    players:["img","swf","flv","html","iframe"]
  });
</script>

» Shadowbox.jsの設置方法

僕の場合は一応これで解決しましたが、他のプラグインにも同じ症状が起こっている可能性もあるので、調べてみないといけませんね。しかし、WordPressのアップデートは様子を見つつおこなったほうが良さそうです。

« 
» 

Leave a Reply