Delightful Downloads プラグイン

みなさま、あけましておめでたう。
えっ?誰も聞いてないって?まあ、そない、足蹴にせぇへんでもええやんか。

などという小芝居は置いときまして。

WordPressのテーマを配布してくれている、TwoBeers Crewのテーマの日本語翻訳ファイルをちまちまと作ってはここにさらしている訳ですが、今まで使っていたプラグイン『Download Manager』がものすごく安定性が悪く、この間のバージョンアップ以来、ついにはファイルをアップロードすることすら出来なくなってしまった(^_^;

さすがに、これは頭痛が痛い話なので代替のプラグインを物色していました。
で、年末も迫ったある日、『Delightful Downloads』というプラグインに出くわしました。
選択したポイントはいくつかあるのですが、『ダウンロードボタンに自由にテキストが配置できる』なんて言うのは、結構な高得点でした。

さすがに、今までに公開してきた翻訳ファイルを全部移行するのはあまりにも労力がかかるのと、本当に古い翻訳ファイルが必要とされているのだろうか?と悩んだ結果、最新のファイルだけにした。
これなら、4種類しかないので、労力もたいしたことは無い。

で、早速移行作業をしたのだが、例によって設定画面は日本語化されていないのでぱっと見、何を言っているのか理解できない。
そんなわけで、翻訳ファイルを作るところから始まったんですね。
実際、年末年始のお仕事休暇に入っていたので、翻訳ファイル自体は比較的短時間で作れました。

しかし、本当に大変だったのはむしろこの後から。

何が起こったのかというと…。

このプラグイン、いわゆるショートコードによってリンクを作成するのですが、そのショートコードを簡単に配置できるようにするエディタがメディア追加ボタンの隣に配置されている。
image
こんな感じですね。
以前使っていた『Download Manager』はエディターのボタン群の中にやはりボタンが追加されていました。
最初、気づかずにショーコードをコピー&ペースとしていました(笑
気づいてからは折角有るんだから使うぞっ!
って思ってぽちってやったんですが…

ちっとも、反応がなかったんですよ。
あれれ?
って、思って、隣のメディア追加ボタンをクリックしても反応がありませんでした。
しかも、左側にあるメニューも、プルダウンがクリックした後じゃないと表示されないという変な状態に…。
どういうことなんだろう?
もう一つ、悪いことに折角作った翻訳ファイルも反映されていない…。

うむむむ。

ダウンロードのエディタが機能しない程度ならまあ、仕方が無いかで済ませるのだが、さすがにメディア追加ボタンが機能しなくなるのは困るので、開発者にヘルプミーをしました。
作者の方でも原因がわからないらしく、日本語環境に問題があるのかな…とか思って、『WP Multibyte Patch』を停止してみたり、いろいろやってみたが、改善されることがなかったので、いよいよ手詰まりになった。
翻訳ファイルの方は、開発者の方が、テスト環境でテストしてみて問題が無かったそうで、こちらもなぜ、反映されないのか判らないとのこと。
開発者のテスト環境で反映されたとおりの指示を頂戴して試したら、今度はキチンと翻訳された。
しかも、最初に試して駄目だった方法で。
まあ、結果オーライと言うことで翻訳ファイルの方は解決と言うことにした[1]

ダウンロードのエディタ機能の方は、こっちでもテスト領域を作成して[2]テストをしていたりなんかしていたのだが、どうにも原因がつかめなかったのですが、ちょうど、大晦日から元旦に掛けて開発者の方もおやすみらしく、レスポンスがなくなったので、おいらの方も休みを入れることにした。

正月も開け、再び、この問題を一から確認していくことにしました。
ああ、そもそも、この問題。
投稿作成の画面で発生していて、固定ページ作成画面では発生していなかったのですよ。
なので、両ページの違いの確認をしたら、有ることに気づきました。
投稿ページにあって、固定ページ画面には無いもの。
それは
image
これだったのです。
実はこれ、WordTwitプラグインのウィジェットです。
では、なぜ、このウィジェットのある投稿編集画面では問題が発生しているのか。
実際、WordTwitプラグインを停止してみると問題が起こっていないことが確認できました[3]
開発者の方にもWordTwitプラグインと競合が発生しているようだと報告をしましたが、『悪いのはWordTwitプラグインの方だ』とばっさり切られたので、仕方なく、おいらの方で原因追及を続行することに。

で、おいらがまずはじめに挑んだのはFireBugにエラーが指摘された『WordTwitLoadJSなんて、存在しないよ!』。
はてさて…。
んじゃ、WordTwitプラグインのソースから探しますか。
そして、

echo "var WordTwitPostID = '" . $post->ID . "';\n";
echo "var WordTwitTweetStatus = " . wordtwit_get_tweet_status() . ";\n";
echo "var WordTwitLoadJS = '1';\n";

そして、こんな記述の存在を見つけた。

前後のソースを見るとJavascriptの一部としてWordPressに書き出させているような部分のようです。

場所は、テンプレートのフッター領域。

問題の起きている状態の投稿編集ページではフッター領域に、このあたりの記述がごっそりと抜け落ちていました。

その影響で、Javascriptがエラー終了していたのかな?

まあ、事細かに調べたわけじゃないし、調べてもどうせおいらには理解できないのでどうしてそうなるのかは深く考えません(をい

判ったことはWordTwitプラグインも、Delightful Downloadsプラグインも

add_action( ‘admin_footer’…

という関数を使用していることでした。

おいらは全然詳しくないので正しい挙動なのかどうなのか判らないけど、この関数は、1つのエントリーしか認めていないような関数には思えないのだけど、なぜだか、そう思えているような挙動だと感じた。

だから、Delightful Downloadsの開発の方に、この関数が競合しているようです…って、報告したら、早速、試してくださいって言うのが提案されたのです。

この関数のプライオリティを設定するオプションをつけてどうなるか?と言うモノ。

結果としては見事競合が回避され、本来の機能を取り戻すことが出来た。

そして、その結果を報告したら次期アップデートに盛り込むと約束してくれて、たいした日も置かずにアップデートが配信されました。

本当に、スピーディーな対応をしてくださる開発者様です。

もう、感謝の言葉を伝えても伝えきれないほどです。

それにしても、納得がいかないのが関数の挙動です。

これでは他のプラグインとも干渉しないかな?

と、疑問に思ったりするのだが、何か他にも条件があるのだろうか…。

これ以上はおいらには理解の難しい領域になるので探求できませんけどね(^_^;
Delightful Downloads 日本語翻訳ファイル10.5 KB
日本語翻訳ファイルについての注意点

オリジナルの翻訳ファイルをベースに翻訳をはじめていましたが、翻訳ファイルに含まれていない設定画面の箇所があったので、ソースから更新をかけてみたのですが、取り込んでくれません。

Delightful Downloads_setting

なぜかは判りませんが、どうも、ソースの記述が『__( sprintf( ‘Set the time in minutes t…』であり、翻訳のためのキーワードの後にPHPの関数が含まれているために対象外にしているようです。

実際に、『 sprintf( __( ‘Set the time in minutes t…』と言う風に書き換えてあげると、キチンと取り込めるのですが…。

こればかりは開発者様がソースを直していただけない限りはその場しのぎでしか有りません。

一応、この部分は『データベースに蓄積された記録を照会する間隔を『分』単位で設定してください。この設定値はショートコード [ ddownload_count ]や [ ddownload_total_count ] および [ ddownload_list ] の結果に影響を与えます。0分に設定すればリアルタイムに反映されますが、サイト(サーバー)のパフォーマンスに悪影響を与えますので、0分という設定は推奨しません。』という訳になります。

また、他にも細かいところで、ここが日本語に出来るんだよな?…と思って居るところが翻訳されていなかったりしているので、妥協して使ってください。

とりわけ、自己責任と言うことでお願いします。


  1. [1]実際には、設定画面の中に翻訳の対象に出来ない記述の部分がソースに記述してあったりして、翻訳ファイルに反映できていない部分も存在する。また、ソースを見ながら翻訳を当てたのにもかかわらず反映されていない部分もままある。が、使用するには問題ないとしてスルーすることにしている(^_^;
  2. [2]いわゆる、別サイトを立てたわけだが、なぜか、ドメインを振ることが出来ないという別のトラブルが発生した。こっちはまだレン鯖会社に問い合わせをしていないが、やけにトラブルにつきまとわれているな…と感じたモノだ。
  3. [3]本来、プラグインを片っ端から止めて消去法を試すべきだったのですが、そこは、実稼働サイトなのでなかなか難しいわけですよ…と言ういいわけを少々(^_^;

Comments are closed.