WordPressプラグインを作ってみたときにハマった件

Wordpress
Wordpressプラグインを作ってみたときにハマった件

はじめに

興味は日々うつろうものです。思い立ったが吉日。この間CSSを触ったついでに、Wordpressもいじってみようと思いまして。数々のカスタマイズができるWordpressですが、まずは手を付けやすそうに見えたプラグインから試してみることにしました。

ただそこは天下のWordPress。そう簡単には事は進まない。将来の自分がまたハマる光景が目に浮かぶこともあり、大きくハマって悩んでしまったことをいくつか記しておきます。

なお、ドキュメントを読み込んでおけば避けられることだったり、慣れている人から見れば初歩的なところかもしれませんが、私めはこういうところにあっさりとハマるのです!

ハマりポイント

バージョンを上げないと更新が反映されない

いそいそとローカルにWordpress環境を作り、作ったプラグインを有効化して動かしておりました。そして、開発中といえば試行錯誤を繰り返すものです。エラーが起これば直してみたり、改善を加えてみたり。

手直ししたものをいざ動かしてみると、加えたはずの手直しが反映されていない。

バージョンを変えていなかったのが原因@プラグインページ

プラグインのバージョンを上げないとWordpress本体側が認識してくれないようです。

プラグインのPHPファイルに書いているバージョンを更新します

謎のheaders already sent

プラグインを有効化すると出てきたこのエラー。「X文字分の予期しない出力が生成されました」とセットで出てきます。生成された予期しない文字列を見てもおそらく分からない。なので、ここで対応しなければならないのは予期しない出力の方ではなく、headers already sentの方です。

これがさっぱりわからず、Google先生にお尋ねしたところ、header関数を実行する前に何らかの出力をしているときに出るようです。なるほどわからん。

今回作ってみたプラグインでは確かにHTMLタグを出力していますが、出力と言ってもプラグイン有効化の時点で何か出すようなことではないですし、タイミング的にはheader関数を実行した後ではないかなと思います。推測ですが。

かなり悩んだ末、空白行を消してみたら動きましたよ。「何らか」が曲者でした。改行コードも含まれるとは。フックで呼び出す関数に、わかりやすいよう空白行を挟んでコードを書いていたんです。みなさんもよくやりませんか?詰め込んで書くと見にくくなるので、空白行をおいたり、インデントしたり。これが仇となった形です。

ただし、すべての空白行を消す必要があるのかどうかは要調査です。

スペルミス

wpwqって書いちゃうってどうよ。
blocksblockって書いちゃうってどうよ。

けしからん。無駄な時間を費やしてしまいました。
このようなポカミスは注意してくださいねとしか言いようがない……

ちょっとした色分けぐらいまではしてくれるエディタで作ったばっかりに、この辺りのスペルミスを防げませんでした。逆に見れば、日頃どれだけXCodeや諸々の統合開発環境に助けられているかということですね。感謝感謝。

まとめ

スペルミスの件以外は知ってたら回避できたことばかりですね。ただやってみないとそれぞれの特徴や癖がわからないもので、今回は良い勉強になりました。

PHPやJavascriptを扱うためのIDEを物色してみようかな。