WordPressの
WP_ERRORクラス:エレガントなエラー処理メカニズム
WordPressのWP_Error
クラスは、アプリケーションのエラーを管理および変更するためのシンプルで強(qiáng)力なエラー処理メカニズムを提供します。アプリケーションに簡(jiǎn)単に統(tǒng)合し、WordPressコア関數(shù)によって返されるエラーを効果的に処理し、ユーザーエクスペリエンスを改善するためのカスタムエラーメッセージを作成します。さらに、is_wp_error
などの実用的な関數(shù)は、変數(shù)または関數(shù)の戻り値がWP_Error
のインスタンスであるかどうかを確認(rèn)でき、それにより問(wèn)題を効率的にデバッグすることができます。
コードがどれほど熟練していて細(xì)かく書かれていても、どの開発プロセスでもエラーを回避することはできません。 WordPress開発者として、すべてのコードエラーがエンドユーザーに影響を與えることなく正しく処理されることを確認(rèn)することはあなたの責(zé)任です。 WordPressには、基本的なエラー処理クラスが付屬しており、基本的なエラー処理のためにコードに統(tǒng)合できます。 WP_Error
このチュートリアルでは、クラスの基本的な構(gòu)造と作業(yè)原則を調(diào)査します。最も重要なことは、アプリケーションにクラスを統(tǒng)合する方法を紹介します。
WP_Error
WP_Error
カテゴリの詳細(xì)な説明
クラスには単純な構(gòu)造がありますが、強(qiáng)力な機(jī)能があります。これは、プラグインのエラー処理メカニズムとして使用するのに十分です。そのソースコードは、WP_Error
ファイルにあります。その特性と方法を見てみましょう。
プロパティWP_Error
wp-includes/class-wp-error.php
と
。は関連するエラーメッセージを保存するために使用されますが、後でアクセスする関連データを保存するためにWP_Error
はオプションで使用されます。 $errors
単純なキーと値のペアを使用して関連するエラーとデータをオブジェクトに保存するため、$error_data
で定義されているキーは、以前に定義されたキーの上書きを避けるために一意でなければなりません。 $errors
$error_data
メソッドWP_Error
WP_Error
-
get_error_codes()
:利用可能なすべてのエラーコードを特定のWP_Error
インスタンスに対して返します。最初のエラーコードのみが必要な場(chǎng)合、別の個(gè)別の関數(shù)が利用可能です。 get_error_code()
- :
が提供されていない場(chǎng)合、関數(shù)は単に特定のget_error_messages( $code )
インスタンスに保存されているすべてのメッセージを返すだけです。同様に、特定のエラーコードを使用してメッセージを返す必要がある場(chǎng)合は、$code
を使用してください。 WP_Error
get_error_message( $code )
:この関數(shù)は、インスタンス化されたオブジェクトに保存されているエラーを変更する場(chǎng)合に特に役立ちます。 - と
add( $code, $message, $data )
が不要であっても、WP_Error
変數(shù)はまだ入力されることに注意してください。 $message
$data
$errors
: プロパティのみを変更する場(chǎng)合は、この関數(shù)を使用できます。 - パラメーターは2番目の位置にあることに注意してください。
add_data( $data, $code)
が提供されていない場(chǎng)合、エラーデータが最初のエラーコードに追加されます。 $error_data
$code
add
:これは、最近WordPress 4.1に追加された新しい方法であり、特定のキーに関連付けられたすべてのエラーメッセージとデータを削除します。 $code
- function
remove( $code )
関數(shù)によって返される特定の変數(shù)またはデータが
のインスタンスであるかどうかをどのようにして知るのですか?指定された変數(shù)に基づいてtrueまたはfalseを返すユーティリティ関數(shù)を使用して確認(rèn)できます。
get_error_codes()
:利用可能なすべてのエラーコードを特定のWP_Error
インスタンスに対して返します。最初のエラーコードのみが必要な場(chǎng)合、別の個(gè)別の関數(shù)が利用可能です。 get_error_code()
get_error_messages( $code )
インスタンスに保存されているすべてのメッセージを返すだけです。同様に、特定のエラーコードを使用してメッセージを返す必要がある場(chǎng)合は、$code
を使用してください。 WP_Error
get_error_message( $code )
add( $code, $message, $data )
が不要であっても、WP_Error
変數(shù)はまだ入力されることに注意してください。 $message
$data
$errors
:add_data( $data, $code)
が提供されていない場(chǎng)合、エラーデータが最初のエラーコードに追加されます。 $error_data
$code
add
:これは、最近WordPress 4.1に追加された新しい方法であり、特定のキーに関連付けられたすべてのエラーメッセージとデータを削除します。 $code
remove( $code )
WP_Error
:is_wp_error()
のインスタンスである場(chǎng)合、trueを返し、それ以外の場(chǎng)合はfalseを返します。
- アプリケーションに実裝
is_wp_error( $thing )
$thing
WP_Error
內(nèi)部的にどのように機(jī)能するかを理解するだけで、自分のアプリケーションで適切に実裝する方法を?qū)Wぶ必要があります。いくつかの例を取り、それがどのように機(jī)能するかをよりよく理解しましょう。
WordPressコア関數(shù)によって返される
WP_Error
WordPressは、開発プロセスをスピードアップするために使用できる多くの実用的な機(jī)能を提供します。ほとんどの関數(shù)には、使用できる基本的なエラー処理関數(shù)も裝備されています。
たとえば、WP_Error
は、特定のURLへのリモートPOSTリクエストを作成するために使用できる非常に便利な機(jī)能です。ただし、リモートURLが常にアクセスできるとは期待できません。または、リクエストが常に成功します。マニュアルページから、この関數(shù)が失敗したときに
このコードをご覧ください:
ご覧のとおり、リモートPOSTリクエストを?qū)g行しています。ただし、単にwp_remote_post
データを取得するのではなく、以前に導(dǎo)入された便利なWP_Error
関數(shù)を使用していくつかのチェックを行います。すべてが機(jī)能する場(chǎng)合、私たちはやりたいことを
アプリケーションでカスタムエラーを返します
handle_form_submission
// 向遠(yuǎn)程 URL $url 發(fā)出請(qǐng)求 $response = wp_remote_post( $url, array( 'timeout' => 30, 'body' => array( 'foo' => 'bar' ) ) ); if ( is_wp_error( $response ) ) { echo 'ERROR: ' . $response->get_error_message(); } else { // 執(zhí)行某些操作 }
もちろん、これらの機(jī)能に獨(dú)自のクリーニングと検証を?qū)g裝する必要もありますが、これはこのチュートリアルの範(fàn)囲內(nèi)ではありません。これで、エラーベースのときにWP_Error
インスタンスを正しく返すことを知って、それを使用して、より意味のあるエラーメッセージをエンドユーザーに提供できます。
フォームの送信エラーを表示する特定の部分がアプリケーションにあると仮定します。これを行うことができます。
function handle_form_submission() { // 在此處執(zhí)行你的驗(yàn)證、nonce 等操作 // 實(shí)例化 WP_Error 對(duì)象 $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' ); } // 發(fā)送結(jié)果 if ( empty( $error->get_error_codes() ) ) { return true; // 沒(méi)有錯(cuò)誤 } // 有錯(cuò)誤 return $error; }要約
ソフトウェア開発に秀でようとすることは、コードがすべきことを?qū)g行できないときに何をすべきかを知ることを意味し、アプリケーションがそれを優(yōu)雅に処理できるようにすることを意味します。
WordPressの場(chǎng)合、付屬の
クラスを使用すると、アプリケーションに統(tǒng)合できるかなりシンプルだが強(qiáng)力なエラー処理実裝が提供されます。
WP_Error
以上がWP_ERRORクラスの紹介の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

WordPressがサーバーCPU使用の急増を引き起こす主な理由には、プラグインの問(wèn)題、非効率的なデータベースクエリ、テーマコードの品質(zhì)の低さ、またはトラフィックの急増が含まれます。 1.最初に、トップ、HTOP、またはコントロールパネルツールを介したWordPressによって引き起こされる高い負(fù)荷であるかどうかを確認(rèn)します。 2.トラブルシューティングモードを入力して、プラグインを徐々に有効にしてパフォーマンスのボトルネックをトラブルシューティングし、QueryMonitorを使用してプラグインの実行を分析し、非効率的なプラグインを削除または交換します。 3.キャッシュプラグインをインストールし、冗長(zhǎng)データをクリーンアップし、スロークエリログを分析してデータベースを最適化します。 4.トピックには、コンテンツの過(guò)負(fù)荷、複雑なクエリ、キャッシングメカニズムの欠如などの問(wèn)題があるかどうかを確認(rèn)します。標(biāo)準(zhǔn)のトピックテストを使用して、コードロジックを比較および最適化することをお?jiǎng)幛幛筏蓼?。上記の手順に従って、?chǎng)所を確認(rèn)して解決し、問(wèn)題を1つずつ解決します。

JavaScriptファイルをマイニングすると、ブランク、コメント、役に立たないコードを削除することにより、WordPress Webサイトの読み込み速度を向上させることができます。 1。W3TOTALCACHEなどの圧縮をサポートするキャッシュプラグインを使用し、「MINIFY」オプションで圧縮モードを有効にし、選択します。 2。FastVelocityMinifyなどの専用圧縮プラグインを使用して、より細(xì)かい制御を提供します。 3. JSファイルを手動(dòng)で圧縮し、FTPを介してアップロードします。これは、開発ツールに精通しているユーザーに適しています。一部のテーマまたはプラグインスクリプトは圧縮関數(shù)と競(jìng)合する可能性があり、アクティベーション後にWebサイト機(jī)能を徹底的にテストする必要があることに注意してください。

プラグインに依存しないWordPressサイトを最適化する方法は次のとおりです。1。積み重なったテーマを避けるために、AstraやGeneratePressなどの軽量テーマを使用します。 2. CSSおよびJSファイルを手動(dòng)で圧縮およびマージして、HTTP要求を削減します。 3.アップロードする前に畫像を最適化し、WebP形式を使用し、ファイルサイズを制御します。 4. configure.htaccessブラウザキャッシュを有効にし、CDNに接続して靜的リソースの負(fù)荷速度を向上させます。 5.記事の改訂を制限し、定期的にデータベース冗長(zhǎng)データをクリーンにします。

Transientapiは、自動(dòng)有効期限データを一時(shí)的に保存するためのWordPressの組み込みツールです。そのコア関數(shù)は、set_transient、get_transient、delete_transientです。 OptionsAPIと比較して、Transimentsは、Cache API要求の結(jié)果や複雑なコンピューティングデータなどのシナリオに適した、生存時(shí)間(TTL)の設(shè)定をサポートしています。それを使用する場(chǎng)合、キーネーミングと名前空間の獨(dú)自性、キャッシュ「怠zyな削除」メカニズム、およびオブジェクトキャッシュ環(huán)境では続かない問(wèn)題に注意を払う必要があります。一般的なアプリケーションシナリオには、外部要求頻度の削減、コード実行リズムの制御、ページの読み込みパフォーマンスの改善が含まれます。

コメントスパムを防ぐ最も効果的な方法は、プログラマティックな手段を介して自動(dòng)的に識(shí)別して傍受することです。 1.検証コードメカニズム(Googler CaptchaやHcaptchaなど)を使用して、特に公共のWebサイトに適した人間とロボットを効果的に區(qū)別します。 2.隠しフィールド(ハニーポットテクノロジー)を設(shè)定し、ロボットを使用して機(jī)能を自動(dòng)的に埋めて、ユーザーエクスペリエンスに影響を與えることなくスパムコメントを識(shí)別します。 3.コメントコンテンツのブラックリストを確認(rèn)し、敏感な単語(yǔ)の一致を通じてスパム情報(bào)をフィルタリングし、誤判斷を避けるために注意を払ってください。 4.コメントの頻度とソースIPを判斷し、単位時(shí)間あたりの提出數(shù)を制限し、ブラックリストを確立します。 5.サードパーティのスパムサービス(Akismet、CloudFlareなど)を使用して、識(shí)別の精度を向上させます。ウェブサイトに基づいていることができます

Gutenbergブロックを開発する場(chǎng)合、エンキュー資産の正しい方法には次のものが含まれます。1。register_block_typeを使用して、editor_script、editor_style、およびstyleのパスを指定します。 2。functions.phpまたはプラグインでwp_register_scriptとwp_register_styleを介してリソースを登録し、正しい依存関係とバージョンを設(shè)定します。 3.適切なモジュール形式を出力し、パスが一貫していることを確認(rèn)するためのビルドツールを構(gòu)成します。 4. Add_Theme_SupportまたはEnqueue_Block_Assetsを介してフロントエンドスタイルの読み込みロジックを制御して、フロントエンドスタイルのロードロジックが確保されるようにします。

カスタムユーザーフィールドを追加するには、プラットフォームに従って拡張メソッドを選択し、データ検証と許可制御に注意を払う必要があります。一般的なプラクティスには次のものが含まれます。1。データベースの追加のテーブルまたはキー価値ペアを使用して情報(bào)を保存します。 2.フロントエンドに入力ボックスを追加し、バックエンドと統(tǒng)合します。 3。機(jī)密データのフォーマットチェックとアクセス許可を制約します。 4.モバイルの適応とユーザーエクスペリエンスを考慮しながら、新しいフィールド表示と編集をサポートするインターフェイスとテンプレートを更新します。

robots.txtは、WordPressのWebサイトのSEOにとって重要であり、検索エンジンを?qū)Г?dòng)作をクロールし、コンテンツの重複を避け、効率を向上させることができます。 1. /wp-admin /および /wp-includes /などのシステムパスをブロックしますが、誤って /uploads /directoryをブロックしないようにします。 2.サイトマップなどのサイトマップパスを追加:https://yourdomain.com/sitemap.xml検索エンジンがサイトマップをすばやく発見するのに役立ちます。 3.クローラー廃棄物を減らすためのパラメーターを備えた制限 /ページ /およびURL。しかし、重要なアーカイブページをブロックしないように注意してください。 4.サイト全體を誤ってブロックすること、更新に影響を與えるキャッシュプラグイン、モバイル端子とサブドメインの一致を無(wú)視するなど、一般的な間違いを避けてください。
