WordPressうまく動かないのはなんで?デバッグ用チェックリスト

  • このエントリーをはてなブックマークに追加

殆どはつづりミスや、論理ミスなど。ゆっくり落ち着いて確認することが重要。

いろいろやりすぎて現状把握できてないんちゃうかな?

プラグインを無効化したり、ループ処理を固定に変えたり、デフォルトテーマに変えたりごちゃごちゃやりたいことをやりすぎて、そのままになっているせいで、思ったところ・検証したいところが、違った条件になってしまっているんちゃうかな?一つずつ、設定をテスト条件の環境にしておいて(プラグインを使うなら有効化し直すとか、テーマをもとに戻すとか)、検証したい箇所を検証しよにさ。

処理ごとにコメントを記載していない

コメントは処理が複雑に慣ればなるほど、あとで、見直すときに役立つ。ifの閉じ・whileの閉じ・forの閉じ一つにしても、コメントで書くことで、見落とさない。どこで閉じているかわかる。

コメントの書き方を統一する

/* aaa */で、コメントになる。//でもOK
ただ、もっとブロック・処理の塊が目立つように、

/* ----------------------------------------
   aaa
---------------------------------------- */

としたり、

/* ////////////////////////////////////////
   aaa
//////////////////////////////////////// */

とすることで、可読性を高める。

/* ----
   -> aaa
---- */

中くらいの処理なら文字の数を減らしたり。

//// ああああ

とするとか。

インデントを揃える

インデントをつけていないため、コードが見づらく、どこの処理の中の処理なのかといった階層がわからなくなる。見た目も煩雑でゴチャついて、書き換えしづらい。

改行する

コードが短いほうがいいというのはたしかにそういったケースもあるが、人がコードを書くので保守しやすいということをまずは優先的に。改行することで、処理のまとまりを視覚的にわかるようにする。

改行を工夫する

例えば、大きな処理の後は2行・4行開けるなどルールを決めておくと読みやすくなる。

引数の指定を工夫する

「’aa’」を「 ‘aa’ 」としたり、
$array = array(‘aaa’=>’あ’,’bbb’=>’い’,’ccc’=>’う’);

を、改行したり・インデントを付けたり、カッコに空白を開ける。

// 前後に空白を入れる ('aa') → ( 'aa' )

$array = array('aaa'=>'あ','bbb'=>'い','ccc'=>'う');

$array = array (
	'aaa' => 'あ',
	'bbb' => 'い',
	'ccc' => 'う',
);

ループ処理

自動処理にコードを書き換えて、アップロードしている?固定のHTMLを入れても例えば1件だけその固定の内容が表示されるだけやに?

つづり合ってる?正しいですか?

バカバカしいかもしれないが、動かなくなる理由は単純かも。
preをpraとか、calendarをcalenderとしてしまっていたり、
have_postsをhave_postとしてしまっていたり、かっこが多い、カッコが少ない、
引数の名称が違うとか。
例えばreturnがretrnになっていたり、falseがfolseとか。

コードの文法は合っているけど、論理エラーになっている

PHPとしては全く問題なく動いて入るが、人間が求めている処理結果や裏で動かすのに正しい処理結果になっていないときは、処理の方法が間違っていることが多い。

  • 処理の順番
  • 処理の条件
  • ループを抜けるタイミング
  • スキップするタイミング
  • 1個ずつ飛ばすならうまく1個ずつループするようになっているか?

よくわからない・なれないうちはコードは短く書かない

1つ1つの処理結果を変数に入れたりしながら、ひとつずつ処理の内容が正しいかを検証しながらコードを組み立てる。後で、慣れたときにコードを短くしたり・省略すればいい。

処理結果を上書きしてしまっている。

$i = 1;
$n = 3 + 2;
$i = 0;

と、単純なケースだと気づくかもしれないが、いくつか処理をまたいだ後の変数の結果は知らず知らずのうちに間違えていて、処理結果が上書きされてしまっているのかも。