WordPressのテーマやプラグインを開発する際に、WordPressの公式デベロッパードキュメントを参照し、関数の仕様や内部処理について理解しておくことが非常に重要です。
公式デベロッパードキュメントは英語で書かれていることから嫌煙されがちですが、技術ブログでは端折って解説している部分も多くあるので今回はWordPressの公式デベロッパードキュメントの読むべき部分と読み方をまとめます。
関数の見方
デベロッパードキュメントの関数ドキュメントのページトップには、その関数の引数と戻り値の型がまとめられています。
関数名( 型 $引数1, 型 $引数2 ): 戻り値の型
WordPressのテーマで多用される、PHPファイルを読み込む関数get_template_part()
を例にページを見てみます。
get_template_part( string $slug, string|null $name = null, array $args = array() ): void|false
上記のように書かれていますが、わかりやすいように改行を入れてみます。
get_template_part(
string $slug,
string|null $name = null,
array $args = array()
): void|false
1行目は、関数名です。丸括弧の中は、記述が多いですが、カンマ区切りに見ます。今回は、カンマ区切りに3つの引数が指定されているので、この関数は最大で3つの引数を渡すことができることがわかります。
$
が頭にある文字列部分は、一般的なPHPの変数の表示方法で引数の名称です。$slugは、その引数をスラッグと呼び、$nameはネームと呼ぶとのように設定されているだけで、その文字自体に特別意味があるわけではありません。
引数前にあるstring
やnull
の部分は、その引数の型を設定する記述です。string
で設定された引数には、数字などを設定できません。|
で区切られている場合は、どちらかの型を指定する必要がある記述です。3行目の場合は、string|null
と記述されているので、文字列かNULLを指定する必要があります。
型 | 意味 | 例 |
---|---|---|
string | 文字列 | "apple"、"りんご"、"123" |
int | 整数 | 123 |
bool | 真偽 | true、false |
null | NULL | null |
array | 配列 | array('hoge', 'fuga')、['hoge', 'fuga'] |
callable | コールバック関数名または関数 | 'callback_func'、function(){} |
string[] | 文字列の配列 | array('hoge', 'fuga')、['hoge', 'fuga'] |
int[] | 整数の配列 | array(12, 34)、[12, 34] |
2行目と3,4行目の大きな違いは、引数自体に=
で初期値が設定されていることです。初期値が設定されている引数は、必要に応じて渡すことができる任意の引数で、初期値が無い引数は必須の引数です。
5行目、:
の後に記述されている型は戻り値の型です。get_template_part
のように、戻り値を使用しない関数の場合はvoid
と記述されます。この関数では、戻り値がない(実際にはnull
になります)か、false
が返ってくるのがわかります。
関数の詳しい説明
関数の下部に関数についての説明や使うときの注意点、引数の説明、戻り値の説明が記載されています。
Description
関数の説明が記載されています。
Parameters
引数の説明が改めて記載されています。
$slug string Required
や$name string|null Optional
のように引数の名前や型、Required/Optional(必須/任意)かどうかが記載されています。
下部に引数の説明や初期値の型について記載されています。
Return
戻り値についての説明です。
さらに参考になる記載
関数を使う上でさらに詳しい情報が下部に記載されています。
特にHooksの情報は、特定の部分にさらに機能を追加する場合などに重宝する非常に重要な項目です。関数の引数がどのように使われているか確認するためにSourceに記載されているコードに目を通すこともあります。
User Contributed Notesには、コードの使用例が記載されています。この部分はWordPressのコミュニティユーザーが投稿した項目で、左上の数字がその投稿についての評価です。マイナス評価の内容は、その関数に関係ない項目やコードに問題がある可能性があります。