wpの関数やフィルターがどのファイルで設定されているか調べる

プラグインのカスタマイズをやっていると使われている関数がどのように設定されているか知る必要が出てくる。

でも大量のファイルの中でどのファイルにその関数定義があるのか調べるのは大変。

なんとなくファイル名であたりをつけて調べていたけど時間がかかってしょうがない。

そんな時に使う方法を紹介します。

まともなエンジニアだったら当たり前の方法だけど独学エンジニアの私は知らなかった。

ターミナルを開く

ターミナルを開いてwpのインストールされているディレクトリに移動。

さらに調べたいプラグインのディレクトリに移動。

そこで

grep -ilr 調べたい関数名 ./*
例)grep -ilr usces_get_confirm_rows ./*

とやる。

こうするとその関数名が含まれているファイルのリストを表示してくれる。

フィルターやアクション設定を調べたいときも使えるね。

コマンドとオプションの簡単な説明

引用元:https://qiita.com/miriwo/items/f6f5b83bdc0504e4f52d

  1. コマンド grep
    • ファイルに対して実行すると条件に合致した行を出力する。
    • 条件には正規表現を使うことができる。
    • よく文字列検索やログの検索に使用する。
    • 大文字と小文字を区別して検索する。
    • $ grep "検索文字列"と実行することで検索文字列を次含む行が出力される。
  2. オプション -iまたは--ignore-case
    • 大文字、小文字を区別せずに検索を行う。
  3. オプション -lまたは--files-with-matches
    • 検索にヒットした行を含むファイル名のみを出力する。
  4. オプション -rまたは-Rまたは--recursive
    • 再起的に検索する。
  5. ./*
    • 検索ディレクトリの指定をしている。
    • .がカレントディレクトリを指す。
    • /*がディレクトリ直下全てを指す。
    • ./*で「カレントディレクトリ直下全て」を指定している。
  6. $ grep -ilr 検索し文字列 ./*
    • 上記を踏まえると、「検索対象ディレクトリを本ディレクトリ直下の全てとして、検索文字列を検索する。検索文字列の大文字小文字を区別せず、ヒットした行があるファイル名を出力して、かつ検索は対象ファイルが存在する限り再起的に検索する」ということになる。

コアファイルの中から探すならこのツール見つけた

https://phpxref.ftwr.co.uk/wordpress/nav.html?_functions/index.html

ここでクラス、関数などを検索出来る。