Yanıtlar:
Fonksiyonun değişkene dönüşünü atayın.
Değişkeni ile kontrol edin is_wp_error()
.
Buna true
göre işlerseniz, örneğin yöntemden trigger_error()
gelen mesajla WP_Error->get_error_message()
.
Eğer false
- her zamanki gibi devam edin.
Kullanımı:
function create_custom_post() {
$postarr = array();
$post = wp_insert_post($postarr);
return $post;
}
$result = create_custom_post();
if ( is_wp_error($result) ){
echo $result->get_error_message();
}
Hei
ilk önce, sonucunuzun bir WP_Error
nesne olup olmadığını kontrol edersiniz :
$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
}
}
Bu her zamanki gibi.
Ancak WP_Error nesnesi, her halükarda genel bir hata deposu gibi davranmak için herhangi bir hata oluşmadan somutlaştırılabilir. Bunu yapmak istiyorsanız, aşağıdakileri kullanarak herhangi bir hata olup olmadığını kontrol edebilirsiniz 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
}
Bunu yaparsanız, wp_insert_post()
yukarıdaki örnekte olduğu gibi döndürülen hatayı bir işlem olup olmadığını kontrol edebilirsiniz .
Sınıf Kodeks üzerinde belgelenmiştir .
Ayrıca burada küçük bir makale var .
$wp_error = wp_insert_post( $new_post, true);
echo '<pre>';
print_r ($wp_error);
echo '</pre>';
Bu tam olarak wordpress post insert fonksiyonu ile neyin yanlış olduğunu gösterecektir. sadece dene !
WP_Error
bir değil bir PHPException
nesnesi.try/catch
Bununla yöntem kullanmıyorsunuz . Ancak belirtildiği gibi, kullanımı kolaylaştıran kolaylık fonksiyonları vardır.