Ele eu,
primeiro, verifique se o clima é um WP_Error
objeto ou não:
$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
}
}
Esta é a maneira usual.
Mas o objeto WP_Error pode ser instanciado sem que ocorra qualquer erro, apenas para atuar como um armazenamento de erro geral, apenas por precaução. Se você quiser fazer isso, poderá verificar se há algum erro usando 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
}
Se você fizer isso, poderá verificar por um processo o erro retornado, como no wp_insert_post()
exemplo acima.
A classe está documentada no Codex .
E há também um pequeno artigo aqui .
WP_Error
é um objeto PHP . Você não usa métodos com ele. Porém, como observado, existem funções de conveniência para facilitar o uso.Exception
try/catch