説明
WP_Error は、処理の失敗内容(エラーコードとメッセージ)を保持するクラスです。WordPressの関数が失敗を伝えるのに使います。
基本構文
new WP_Error( string|int $code = '', string $message = '', mixed $data = '' )
引数
$code:エラーコード$message:エラーメッセージ$data:追加データ
戻り値
WP_Error オブジェクト。
使い方(サンプル)
function my_check( $v ) {
if ( empty( $v ) ) {
return new WP_Error( 'empty', '値が空です' );
}
return $v;
}
$res = my_check( '' );
if ( is_wp_error( $res ) ) {
error_log( $res->get_error_message() );
}
注意点
- 戻り値を使う前に、
is_wp_error()で必ず判定します。 get_error_code()、get_error_message()、get_error_data()で内容を取り出せます。
実務での使いどころ
- 関数が、失敗したときの、エラーの内容(コードとメッセージ)を、返すとき。
- 自分で作る関数で、失敗を、呼び出し側へ伝えるとき。
よくあるミスと対処
- 戻り値を、
if ( $result )で判定している。WP_Errorのオブジェクトは、真と判定される。is_wp_error()で確認する。 get_error_message()が、最初のコードの、最初のメッセージだけを返すことを、知らない。複数のエラーは、get_error_messages()。- エラーのメッセージを、エスケープせずに、画面に出力している。
NG例
$result = wp_insert_post( $args, true );
if ( $result ) { // WP_Error も、真になる
// ...
}
OK例
$result = wp_insert_post( $args, true );
if ( is_wp_error( $result ) ) {
error_log( $result->get_error_message() );
return;
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| エラーを作る | new WP_Error( $code, $message ) |
| エラーかを判定 | is_wp_error() |
| メッセージを取得 | $error->get_error_message() |

コメント