WP_Error クラスの使い方|説明・引数・注意点

説明

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()

関連項目

is_wp_error()、wp_die()

公式リファレンス:WP_Error | WordPress Developer Resources

コメント

タイトルとURLをコピーしました