WordPressの管理画面とFirebugが衝突していた

ここ数日、FirefoxでWordPressの管理画面で新規投稿や既存記事の修正をしようとしたときに、

  • 右サイドバーのカテゴリーのところにiframeが出て、その中にWordPress Admin画面がまた表示され、
  • おそらくその中で再帰的に管理画面が表示され続け、
  • そのうちにブラウザが諦めて、ページが真っ白、または編集用のボタンが一列だけ表示される

みたいな現象が起こり、FirefoxでWordPressの編集ができなくて悩んでいました。

最初はWordPress自体の問題かと思っていたのですけど、WordPressのサイトを症状で検索しても、それらしい問題が見当たりません。

しょうがないので、Firefoxのaddonを全部オフにすると、問題が解消されました。

# セーフモードの存在を忘れてました。セーフモードで試せばもっと楽でしたね

拡張のどれかが悪さをしてることがわかったので、あとはどれをオンにした時に問題が発生するか、on/offを調整して探すだけです。その結果、Firebugを有効にしたときに上記の問題が再現しました。

FirebugとWordPress Adminで検索すると、今度は「FirebugがWordPressの編集投稿ページで再帰的な読み込みを発生させる」というズバリなバグレポートが見つかりました。

レポートにもありますが、Firebugをenableにした時は、この問題は発生しません。suspendにすると発生します。Firebugを使わないのも困るのですが、WordPressで投稿するたびにenableにするのも面倒だなあ。

バグレポートの☆をポチっと押して、修正してほしい気持ちを伝えておきました。

同じ現象で悩んでいる人がいるかもしれないので、記録しておきます。

[追記 2009.10.24] 本日、このバグを修正したというコメントがバグレポートに入りました。近いうちのFirebugの更新で、この問題は解消されそうです。

WordPress2.7でFlashのアップローダーが動かないとき

Flashプレイヤーは最新の10をインストールして大丈夫です。(2.6のときに、Flash Playerを9に戻さないと動かない、という時期が一時ありました。今はこの問題は解消されているので、最新版のほうがいいでしょう)

2.6以前からアップグレードした人は、swfファイルが無いときがあります。これが原因。

via WordPress > Support

WordCamp Tokyo 2009に行ってきました

昨年の第一回に続き、WordPressユーザーの集まるイベントWordCampに参加してきました。

今回のワードキャンプは、なんといってもWordPressの開発元Automattic社でチーフ・バーベキュー味見係および創業者のマット・ムレンウェグ(Matt Mullenweg)さんが来日し発表したこと。

マットさんはこのイベントの前に香港や上海のユーザイベントにも訪れており、WordPressのアジア向け施策についての情報収集という背景があるのではと思われました。

昼間および夜の懇親会で、日本語化やマニュアル翻訳を行ったり、日本向けのプラグインを開発・配布されたりしている日本のコア開発者のみなさんと積極的に意見交換をされていました。この先、日本から要望されていた機能の追加や本家への組み込みなどが加速するかもしれません。期待しています。

マットさんの懇親会でのスピーチにもありましたが、同じWordPressユーザ・開発者の集まりで以前からの知人と再会したり、新しく知り合えたりできて、個人的にも非常に行って良かったイベントとなりました。運営のみなさま、ありがうございました。

[WordPress] ページリストから特定のページを外す方法

以前出したPHP5でいろんなウェブサービスをあやつる人のための解説本「PHP×WebサービスAPIコネクションズ」のためのサポートサイトを運営しているのですが、読者の方から誤植などを教えていただくためのフォームが最近スパムロボットに捕捉されたようで、怪しいURLの満載されたメールがフォーム経由で届くようになってしまいました。

最近は読者の方からの連絡もほとんど無くなってきたのに、毎日のように律儀なスクリプトがスパムメールを送ってくれるわけです。かといって閉鎖したら本当に用がある人が連絡できない。(まあ、探せば僕のメールアドレスはわかると思いますけど)

しょうがないので自作のフォームにロボット除けのCAPTCHAを組み込もうかなと思ったのですが、良く考えたらそういうフォームはWordPressのプラグインContact Form7で他にも作って、アジアジン等で使ってるわけです。WordPressの中の仕組みだけれど、それを指して使えばそれでもいいかな、と思いました。

ということで、この個人ブログのWordPressを使って、CAPTCHAつき「作者に連絡フォーム」を作ることにしました。

と、ここまでは一瞬です。本当に簡単にフォームが作れます。このフォームをどこに置くかですが、ブログ本編とは関係ないので、WordPressの「ページ」として作成します。

問題は、ページで作ってしまうと、通常のテーマではページの一覧リストに表示されてしまうこと。このページの上のほうにある「Home 仕事依頼 自分用リンク 自己紹介」というやつですね。ブログとは無関係だからここには載せたくない、かといってページを「非公開」で作ると、こんどはページのタイトルに「非公開」とつけられてしまいます。

そこで、テーマファイルにちょっと手を入れることになります。今使っているテーマファイルでは、ヘッダの中にこのページ一覧があるので、[デザイン]-[テーマエディタ]-[ヘッダー]でheader.phpを開きます。

ページリストを作っているのはこの関数。

wp_list_pages('depth=1&title_li=');

こいつのパラメータに、「この番号のページは除外してね」と指定できます。表示させたくないページIDを管理画面から持ってきて、

wp_list_pages('depth=1&title_li=&exclude=581');

などすると、一覧から今回作ったコンタクトフォームのページが外されるようになりました。この関数には他にもいろいろパラメータがあるみたいで、プログラムレスでかなりのカスタマイズができるんだなあ、とあらためて関心。