WordPress のコアファイル数は *.php だけだと、たぶん 260~270 あると思いますが、なにかしらの調査があって調べようと思うと最初はどこに何が状態になると思います。 ということで、ここは IDE の力を借りて簡単にソースを追う方法を紹介してみます。 というかぼくがいつもやっている方法です。 🙂
使っているのはおなじみの Eclipse PDT。 紆余曲折ようやく Ubuntu でも 2.0 が使えるようになったので PDT 2.0 であります。 面倒だったのでまだ英語のままです。
これですね。
IDE というのは、プログラム言語をある程度知っています。 これが関数であるとか、ここが変数のスコープであるとか、という部分をパースしてくれているので、ふつうの検索とかより賢い検索であるとか、カーソルジャンプが使うことができます。
PHP は、言語仕様として、 requre とか include を動的にすることができるので IDE が無力になる場合もあるのですが、それでもある程度まではイケます。 動かすまでどういうプログラム構成になるか分からないというところが、PHP の最大の特徴のような気もします(笑) まぁ DI とかもそうですね。
てなわけで、ケース1。 page_navilink という関数があったとして、これってどこにあるんだっていう grep の例。
PDT では PHP Seach という機能が使えます。 ここで、Limit To を Declarations に設定すると定義部分だけ抽出して検索結果を返してくれます。
おお、general-template.php にあるのね~。
ソースにぴょん。

ふつうの grep だと、呼び元先、そのほかコメントとかにあるのもだしてきちゃうので、この Limit は賢いです。
ケース2。 じゃーこの page_navilink 関数はどこで使ってるの?
関数を改修しようとして、影響範囲を調べるのによくあるパターンです。 実は PDT には、Java IDE でおなじみの Call Hierarchy というメソッド呼び出し検索機能があるっぽくみえます。 関数なぞって右クリックして実行。。
にゃーんも、でね~(汗)
[news.eclipse.tools.pdt] Re: ‘Open call hierarchy’ (Ctrl-Alt-H) doesn’t
Call Hierarchy is not implemented yet in PDT 2.0.
[tegaki]くらぁ~!(笑)[/tegaki]
というわけで、残念ながら Call Hierarchy 機能は使えないのですが、呼び元検索であれば先ほどの PHP Serach で代用できます。
Limit を References に。
ほうほう、これから呼ばれているのか、の図。
なんて感じですね。 いくつかの呼び出しをみれば使い方も分かってきます。
最後ケース3。 テーマをいじってたときに、the_tags という関数の使い方を見たくなったとき。
IDE を使う一番らくな部分が、定義ジャンプです。 the_tags の定義部分にボタン一つで飛ぶ機能であります。
こればっかりは、見ていただいた方が早い!1分動画なのでみてみて~。 🙂
検索すらいりません。 F3 押すだけでどんどんとべますので、ソースを追うときは恐ろしく効率的です。 テーマ表示部分のフィルターみつけるときはこの方法が一番早く見つけられるかもしれません。 あと、PHPDoc 形式にコメントがちゃんとなっていれば、カーソルあわせでホバーもします。
さてさて、ほかにも IDE には、それっぽいところにブレイクはっておいて、そっからステップで追っていくとかいろいろ小技があるのですが、少し大きめのアプリであれば使ってみる価値はあると思います。
以上、ひろまさワンポイント(!?)でした。