目次
WP_ERRORクラス:エレガントなエラー処理メカニズム
クラスには単純な構造がありますが、強力な機能があります。これは、プラグインのエラー処理メカニズムとして使用するのに十分です。そのソースコードは、WP_Errorファイルにあります。その特性と方法を見てみましょう。
アプリケーションでカスタムエラーを返します

WP_ERRORクラスの紹介

Feb 17, 2025 am 09:55 AM

WordPressの

WP_ERRORクラス:エレガントなエラー処理メカニズム

WordPressのWP_Errorクラスは、アプリケーションのエラーを管理および変更するためのシンプルで強力なエラー処理メカニズムを提供します。アプリケーションに簡単に統合し、WordPressコア関数によって返されるエラーを効果的に処理し、ユーザーエクスペリエンスを改善するためのカスタムエラーメッセージを作成します。さらに、is_wp_errorなどの実用的な関数は、変数または関数の戻り値がWP_Errorのインスタンスであるかどうかを確認でき、それにより問題を効率的にデバッグすることができます。

コードがどれほど熟練していて細かく書かれていても、どの開発プロセスでもエラーを回避することはできません。 WordPress開発者として、すべてのコードエラーがエンドユーザーに影響を与えることなく正しく処理されることを確認することはあなたの責任です。 WordPressには、基本的なエラー処理クラスが付属しており、基本的なエラー処理のためにコードに統合できます。 WP_Error このチュートリアルでは、クラスの基本的な構造と作業原則を調査します。最も重要なことは、アプリケーションにクラスを統合する方法を紹介します。

WP_ErrorWP_Error カテゴリの詳細な説明

An Introduction to the WP_Error Class

クラスには単純な構造がありますが、強力な機能があります。これは、プラグインのエラー処理メカニズムとして使用するのに十分です。そのソースコードは、WP_Errorファイルにあります。その特性と方法を見てみましょう。

プロパティWP_Error wp-includes/class-wp-error.php

プライベート属性は2つしかありません:

は関連するエラーメッセージを保存するために使用されますが、後でアクセスする関連データを保存するためにWP_Errorはオプションで使用されます。 $errors単純なキーと値のペアを使用して関連するエラーとデータをオブジェクトに保存するため、$error_dataで定義されているキーは、以前に定義されたキーの上書きを避けるために一意でなければなりません。 $errors $error_dataメソッドWP_Error WP_Error

に含まれる2つのプロパティを変更するいくつかの方法を提供します。いくつかを見てみましょう:

  • get_error_codes():利用可能なすべてのエラーコードを特定のWP_Errorインスタンスに対して返します。最初のエラーコードのみが必要な場合、別の個別の関数が利用可能です。 get_error_code()
  • が提供されていない場合、関数は単に特定のget_error_messages( $code )インスタンスに保存されているすべてのメッセージを返すだけです。同様に、特定のエラーコードを使用してメッセージを返す必要がある場合は、$codeを使用してください。 WP_Error get_error_message( $code )
  • :この関数は、インスタンス化されたオブジェクトに保存されているエラーを変更する場合に特に役立ちます。
  • add( $code, $message, $data )が不要であっても、WP_Error変数はまだ入力されることに注意してください。 $message $data$errors
  • プロパティのみを変更する場合は、この関数を使用できます。
  • パラメーターは2番目の位置にあることに注意してください。 add_data( $data, $code)が提供されていない場合、エラーデータが最初のエラーコードに追加されます。 $error_data $codeadd:これは、最近WordPress 4.1に追加された新しい方法であり、特定のキーに関連付けられたすべてのエラーメッセージとデータを削除します。 $code
  • functionremove( $code )
  • 関数によって返される特定の変数またはデータが
のインスタンスであるかどうかをどのようにして知るのですか?指定された変数に基づいてtrueまたはfalseを返すユーティリティ関数を使用して確認できます。

WP_Erroris_wp_error()のインスタンスである場合、trueを返し、それ以外の場合はfalseを返します。

  • アプリケーションに実装is_wp_error( $thing )$thing WP_Error内部的にどのように機能するかを理解するだけで、自分のアプリケーションで適切に実装する方法を学ぶ必要があります。いくつかの例を取り、それがどのように機能するかをよりよく理解しましょう。
  • WordPressコア関数によって返される
処理エラー

WP_ErrorWordPressは、開発プロセスをスピードアップするために使用できる多くの実用的な機能を提供します。ほとんどの関数には、使用できる基本的なエラー処理関数も装備されています。

たとえば、

WP_Errorは、特定のURLへのリモートPOSTリクエストを作成するために使用できる非常に便利な機能です。ただし、リモートURLが常にアクセスできるとは期待できません。または、リクエストが常に成功します。マニュアルページから、この関数が失敗したときに

を返すことがわかります。この知識は、アプリケーションでエラー処理を正しく実装するのに役立ちます。

このコードをご覧ください:

ご覧のとおり、リモートPOSTリクエストを実行しています。ただし、単にwp_remote_postデータを取得するのではなく、以前に導入された便利なWP_Error関数を使用していくつかのチェックを行います。すべてが機能する場合、私たちはやりたいことを

でやり続けることができます。

アプリケーションでカスタムエラーを返します

handle_form_submission

という名前の連絡先フォームの送信を処理するカスタム関数があるとします。どこかでカスタムフォームを設定したとしたら、独自のエラー処理機能を実装することで機能を改善する方法を見てみましょう。
// 向远程 URL $url 发出请求
$response = wp_remote_post( $url, array(
    'timeout' => 30,
    'body' => array( 'foo' => 'bar' )
    )
);

if ( is_wp_error( $response ) ) {
   echo 'ERROR: ' . $response->get_error_message();
} else {
    // 执行某些操作
}
ログイン後にコピー

もちろん、これらの機能に独自のクリーニングと検証を実装する必要もありますが、これはこのチュートリアルの範囲内ではありません。これで、エラーベースのときにWP_Errorインスタンスを正しく返すことを知って、それを使用して、より意味のあるエラーメッセージをエンドユーザーに提供できます。

フォームの送信エラーを表示する特定の部分がアプリケーションにあると仮定します。これを行うことができます。

function handle_form_submission() {
    // 在此处执行你的验证、nonce 等操作

    // 实例化 WP_Error 对象
    $error = new WP_Error();

    // 确保用户提供名字
    if ( empty( $_POST['first_name'] ) ) {
        $error->add( 'empty', 'First name is required' );
    }

    // 也需要姓氏
    if ( empty( $_POST['last_name'] ) ) {
        $error->add( 'empty', 'Last name is required' );
    }

    // 检查电子邮件地址
    if ( empty( $_POST['email'] ) ) {
        $error->add( 'empty', 'Email is required' );
    } elseif ( ! is_email( $_POST['email'] ) ) {
        $error->add( 'invalid', 'Email address must be valid' );
    }

    // 最后,检查消息
    if ( empty( $_POST['message'] ) ) {
        $error->add( 'empty', 'Your message is required' );
    }

    // 发送结果
    if ( empty( $error->get_error_codes() ) ) {
        return true; // 没有错误
    }

    // 有错误
    return $error;
}
ログイン後にコピー
要約

ソフトウェア開発に秀でようとすることは、コードがすべきことを実行できないときに何をすべきかを知ることを意味し、アプリケーションがそれを優雅に処理できるようにすることを意味します。

WordPressの場合、付属の

クラスを使用すると、アプリケーションに統合できるかなりシンプルだが強力なエラー処理実装が提供されます。

WP_Error

(元のテキストの外部参照とFAQセクションは、元のテキストの直接コピーであり、擬似オリジナリティの要件を満たしていないため、ここでは省略されています。)

以上がWP_ERRORクラスの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

パーソナライズされた結果のためにWordPressでユーザー情報をログインする方法 パーソナライズされた結果のためにWordPressでユーザー情報をログインする方法 Apr 19, 2025 pm 11:57 PM

最近、ユーザーがお気に入りの投稿をパーソナライズされたライブラリに保存できるようにすることで、ユーザー向けのパーソナライズされたエクスペリエンスを作成する方法を示しました。一部の場所で名前を使用することで、パーソナライズされた結果を別のレベルに引き上げることができます(つまり、ウェルカム画面)。幸いなことに、WordPressにより、ユーザーのログインに関する情報を簡単に入手できます。この記事では、現在ログインしているユーザーに関連する情報を取得する方法を紹介します。 get_currentuserinfo()を使用します。  関数。これは、テーマ(ヘッダー、フッター、サイドバー、ページテンプレートなど)のどこでも使用できます。それが機能するためには、ユーザーをログインする必要があります。したがって、使用する必要があります

WordPressの記事リストを調整する方法 WordPressの記事リストを調整する方法 Apr 20, 2025 am 10:48 AM

WordPressの記事リストを調整するには4つの方法があります。テーマオプションを使用し、プラグイン(投稿タイプの注文、WP投稿リスト、ボックスのものなど)を使用し、コード(functions.phpファイルに設定を追加)を使用するか、WordPressデータベースを直接変更します。

WordPressブログを始める方法:初心者向けのステップバイステップガイド WordPressブログを始める方法:初心者向けのステップバイステップガイド Apr 17, 2025 am 08:25 AM

ブログは、人々が自分の意見、意見、意見をオンラインで表現するための理想的なプラットフォームです。多くの初心者は自分のウェブサイトを構築することに熱心ですが、技術的な障壁やコストの問題を心配することをためらっています。ただし、プラットフォームが初心者の能力とニーズを満たすために進化し続けるにつれて、今まで以上に容易になり始めています。 この記事では、テーマの選択からプラグインの使用まで、セキュリティとパフォーマンスを向上させ、独自のWebサイトを簡単に作成できるように、WordPressブログを構築する方法を段階的に導きます。 ブログのトピックと方向を選択してください ドメイン名を購入したり、ホストを登録する前に、カバーする予定のトピックを特定することをお勧めします。個人的なウェブサイトは、旅行、料理、製品のレビュー、音楽、またはあなたの興味を引き起こす趣味を中心に展開できます。あなたが本当に興味を持っている領域に焦点を当てることは継続的な執筆を奨励することができます

親カテゴリのアーカイブページに子カテゴリを表示する方法 親カテゴリのアーカイブページに子カテゴリを表示する方法 Apr 19, 2025 pm 11:54 PM

親カテゴリアーカイブページに子カテゴリを表示する方法を知りたいですか?分類アーカイブページをカスタマイズするときは、訪問者にとってより便利にするためにこれを行う必要がある場合があります。この記事では、親カテゴリアーカイブページに子カテゴリを簡単に表示する方法を示します。サブカテゴリが親カテゴリアーカイブページに表示されるのはなぜですか?親カテゴリアーカイブページにすべての子カテゴリを表示することにより、訪問者にとってより一般的で便利になります。たとえば、本に関するWordPressのブログを実行し、「テーマ」と呼ばれる分類法を持っている場合、「小説」、「ノンフィクション」などのサブ課題を追加して、読者ができるようにすることができます。

WordPressの有効期限後の日付で投稿を並べ替える方法 WordPressの有効期限後の日付で投稿を並べ替える方法 Apr 19, 2025 pm 11:48 PM

過去には、拡張後のプラグインを使用してWordPressの投稿を期限切れにする方法を共有してきました。さて、Activity List Webサイトを作成するとき、このプラグインは非常に便利であることがわかりました。期限切れのアクティビティリストを簡単に削除できます。第二に、このプラグインのおかげで、有効期限後の日付までに投稿を並べ替えることも非常に簡単です。この記事では、WordPressの有効期限後の日付で投稿を並べ替える方法を紹介します。プラグインの変更を反映してカスタムフィールド名を変更するためのコードを更新しました。コメントで私たちに知らせてくれたTajimに感謝します。特定のプロジェクトでは、イベントをカスタムポストタイプとして使用します。今

WordPressホスト用のWebサイトを構築する方法 WordPressホスト用のWebサイトを構築する方法 Apr 20, 2025 am 11:12 AM

WordPressホストを使用してWebサイトを構築するには、次のようにする必要があります。信頼できるホスティングプロバイダーを選択します。ドメイン名を購入します。 WordPressホスティングアカウントを設定します。トピックを選択します。ページと記事を追加します。プラグインをインストールします。ウェブサイトをカスタマイズします。あなたのウェブサイトを公開します。

IFTTT(およびその他)でWordPressとソーシャルメディアを自動化する方法 IFTTT(およびその他)でWordPressとソーシャルメディアを自動化する方法 Apr 18, 2025 am 11:27 AM

WordPress Webサイトやソーシャルメディアアカウントを自動化する方法をお探しですか? 自動化を使用すると、WordPressのブログ投稿やFacebook、Twitter、LinkedIn、Instagramなどで自動的に共有できます。 この記事では、IFTTT、Zapier、およびUncanny Automatorを使用してWordPressとソーシャルメディアを簡単に自動化する方法を紹介します。 WordPressとソーシャルメディアを自動化する理由 WordPreを自動化します

WordPressでクエリカウントとページの読み込み時間を表示する方法 WordPressでクエリカウントとページの読み込み時間を表示する方法 Apr 19, 2025 pm 11:51 PM

ユーザーの1人が、フッターにクエリの数とページの読み込み時間を表示する方法を他のWebサイトに尋ねました。これをウェブサイトのフッターでよく見ることがよくあり、「1.248秒で64クエリ」のようなものを表示する場合があります。この記事では、WordPressにクエリの数とページの読み込み時間を表示する方法を紹介します。テーマファイル(たとえば、footer.php)で好きな場所に次のコードを貼り付けます。クエリエシン

See all articles