概要
is_wp_error
関数は、WordPressにおいて、返されたオブジェクトがWP_Error
オブジェクトであるかどうかを確認するための関数です。この関数はエラーハンドリングや異常条件の処理を行う際に非常に重要であり、以下のような状況でよく使用されます。
- プラグインやテーマの機能内でのエラーチェック
- データベースからのデータ取得時のエラー確認
- APIリクエストのレスポンスチェック
- フォーム送信時のバリデーション
- カスタムポストタイプやタクソノミーの登録確認
- ログイン時のユーザー認証エラー確認
- サードパーティサービスとの統合時のエラーハンドリング
- 所定の機能のフック実行時のエラー確認
構文
is_wp_error( mixed $thing )
パラメータ
- $thing: 調べたいオブジェクトや変数。通常は
WP_Error
オブジェクトまたはそれ以外の型。
戻り値
true
:$thing
がWP_Error
オブジェクトの場合。false
: それ以外の場合。
関連する関数
使用可能なバージョン
- この関数は、WordPress 2.5.0以降で使用可能です。
コアファイルのパス
wp-includes/class-wp-error.php
サンプルコード
サンプル1: WP_Errorのチェック
このコードは、特定の関数から返された値がWP_Error
オブジェクトであるかどうかを確認し、適切なエラーメッセージを表示します。
$result = some_function();
if (is_wp_error($result)) {
echo 'エラー: ' . $result->get_error_message();
}
引用元: https://developer.wordpress.org/reference/functions/is_wp_error/
サンプル2: データベースの問い合わせ
このコードは、データベースクエリからの戻り値をチェックし、エラーがあれば処理します。
$query = $wpdb->get_results("SELECT * FROM wp_posts");
if (is_wp_error($query)) {
error_log($query->get_error_message());
}
引用元: https://developer.wordpress.org/reference/functions/is_wp_error/
サンプル3: フォームバリデーション
このサンプルは、ユーザーが送信したデータが有効かどうかを検証し、WP_Error
オブジェクトでのエラーを確認します。
$errors = validate_form_data($_POST);
if (is_wp_error($errors)) {
foreach ($errors->get_error_messages() as $error) {
echo '<div class="error">' . $error . '</div>';
}
}
引用元: https://developer.wordpress.org/reference/functions/is_wp_error/
サンプル4: APIレスポンスの確認
このコードは、APIからのレスポンスを確認し、WP_Error
を使ってエラーを処理します。
$response = wp_remote_get('https://api.example.com/data');
if (is_wp_error($response)) {
echo 'APIエラー: ' . $response->get_error_message();
}
引用元: https://developer.wordpress.org/reference/functions/is_wp_error/
サンプル5: カスタムポストタイプの登録
このコードは、カスタムポストタイプの登録時にエラーが発生したかどうかを確認します。
$result = register_post_type('custom_type', $args);
if (is_wp_error($result)) {
echo 'ポストタイプ登録エラー: ' . $result->get_error_message();
}
引用元: https://developer.wordpress.org/reference/functions/is_wp_error/
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
mu_plugin_loaded | 〇 |
registered_post_type | 〇 |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | 〇 |
after_setup_theme | 〇 |
set_current_user | |
init | 〇 |
register_sidebar | 〇 |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | 〇 |
wp | 〇 |
template_redirect | 〇 |
get_header | |
wp_head |
非推奨または削除されたWordPressバージョン
- 現在、
is_wp_error
関数は非推奨または削除されたバージョンはありません。