WordPressのソースを検索するのに便利なコマンド

今日の記事は、WordPress開発で便利なコマンドの話です。

WordPressのプラグインを開発していると、フックを探したり特定の関数のソースを見る必要があったり、定数を確認したかったり、いろんな場面でWordPressのソースを検索する必要があります。

以下はLinuxやMacのターミナルでそれらを検索する方法です。

WordPressはコーディング基準が定められているので、こういう時には超便利です。

コマンドで複数ファイルの検索を行うには?

私は、find と xargs、grep という3つのコマンドを組み合わせて検索しています。

find /path/to/wordpress -name "*.php" | xargs grep "foo"

上記のコマンドでは、/path/to/wordpress ディレクトリ内(サブディレクトリも含む)の全ての.phpファイルから、ファイル内に”foo”が含まれるファイルを検索しています。

WordPressの全てのアクションフックを検索する。

あらかじめWordPressのディレクトリに移動してから以下のコマンドを入力してエンター。

find . -name "*.php" | xargs grep "do_action("

WordPressの全てのフィルターフックを検索する。

find . -name "*.php" | xargs grep "apply_filters("

WordPressで定義されている全ての定数を検索する。

find . -name "*.php" | xargs grep "define("

WordPressの特定の関数のソースを探す

たとえば、get_option() のソースがどこにあるのかを知りたければ、以下のようなコマンドで。

find . -name "*.php" | xargs grep "function get_option"

具体的に開発中にどう使うの?

たとえば、コンテンツthe_content()の中身を修正するプラグインを作成するには、the_content()のソースがどのファイルにあるのかを探します。

find . -name "*.php" | xargs grep "function the_content"

上記のコマンドを実行すると wp-includes/post-template.php というファイルにあるのがわかります。

で、実際にソースを見ると、the_content というフィルターフックがあるのがわかるので、そのフックを使用して書き換えるといった感じです。

実際には、対象の関数からさらに別の関数がコールされていたりするので、何回もこのコマンドを打つ感じになりますが。
(お役所のたらいまわしに似てるかも。)