独自のカスタムフィールドを持つカスタム投稿タイプのエラーを処理する方法を探しています。これは私が書いているプラグインのすべての部分ですが、徹底的な調査の後、私が見つけた唯一の方法はセッション(あるいは同様のもの)を通して次のページに表示することです(その場合それは変更を保存します)。
何か他の方法でエラーを処理し、WordPressが投稿タイプを保存できないようにする方法はありますか?もしそうならどうですか?私はWP_Errorクラスが機能するだろうと考えましたが、運が良かったです。
誰でも手伝うことができれば、それは素晴らしいことです!
ありがとうございます。
WordPressには、バージョン2.1.0以降のWordPressのエラーとエラーメッセージをチェックするための WP_Error
クラスがあります。 WordPressは、いくつかのWP関数からのエラーを報告するためにWP_Error
クラスのオブジェクトを使用しています。ただし、このオブジェクトをプラグインまたはテーマで使用して、WordPress内のエラーを処理することができます。このクラスには、エラーを管理するための非常に便利なメソッドが含まれています。
すべての方法
<?php
//Creating instance of error class
$error = new WP_Error( 'not_found', 'Page Not Found', 'Page Data' );
//Add new error to object
$error->add( 'not_match', 'Field Not Match' );
//Return all error codes from object
$data = $error->get_error_codes();
print_r( $data );
//Output: Array ( [0] => not_found [1] => not_match )
//Return first error code
echo $error->get_error_code();
//Output: not_found
//Return all error message
$data = $error->get_error_messages();
print_r( $data );
//Output: Array ( [0] => Page Not Found [1] => Field Not Match )
//Return error message by error code
$data = $error->get_error_messages( 'not_match' );
print_r( $data );
//Output: Array ( [0] => Field Not Match )
//Return first error message if no code are given
echo $error->get_error_message();
//Output: Page Not Found
//Return first error message for given error code
echo $error->get_error_message( 'not_match' );
//Output: Field Not Match
//Return first error data
echo $error->get_error_data();
//Output: Page Data
//Return error data from error code.
echo $error->get_error_data( 'not_found' );
//Output: Page Data
//add error data to error code
//syntex: add_data( $data, $code );
$error->add_data( 'Some data', 'not_match' );
echo $error->get_error_data( 'not_match' );
//Output: Some data
//Check whether variable is a WordPress Error.
//return bool True, if WP_Error. False, if not WP_Error.
$data = is_wp_error( $error );
var_dump( $data );
//Output: bool(true)
出典とヒント:この記事の背景