Hei,
pertama, Anda memeriksa cuaca hasil Anda adalah WP_Error
objek atau tidak:
$id = wp_insert_post(...);
if (is_wp_error($id)) {
$errors = $id->get_error_messages();
foreach ($errors as $error) {
echo $error; //this is just an example and generally not a good idea, you should implement means of processing the errors further down the track and using WP's error/message hooks to display them
}
}
Ini cara yang biasa.
Tetapi objek WP_Error dapat di-instanciated tanpa terjadi kesalahan, hanya untuk bertindak sebagai penyimpanan kesalahan umum untuk berjaga-jaga. Jika Anda ingin melakukannya, Anda dapat memeriksa apakah ada kesalahan dengan menggunakan get_error_code()
:
function my_func() {
$errors = new WP_Error();
... //we do some stuff
if (....) $errors->add('1', 'My custom error'); //under some condition we store an error
.... //we do some more stuff
if (...) $errors->add('5', 'My other custom error'); //under some condition we store another error
.... //and we do more stuff
if ($errors->get_error_code()) return $errors; //the following code is vital, so before continuing we need to check if there's been errors...if so, return the error object
.... // do vital stuff
return $my_func_result; // return the real result
}
Jika Anda melakukannya, Anda kemudian dapat memeriksa proses kesalahan yang dikembalikan seperti pada wp_insert_post()
contoh di atas.
Kelas didokumentasikan pada Codex .
Dan ada juga artikel kecil di sini .
WP_Error
adalah tidak PHPException
objek. Anda tidak menggunakantry/catch
metode dengannya. Tetapi seperti disebutkan, ada fungsi kenyamanan untuk membuatnya mudah digunakan.