답변:
함수의 리턴 값을 변수에 지정하십시오.
로 변수를 확인하십시오 is_wp_error()
.
만약 true
핸들 따라서, 예를 들어 trigger_error()
에서 메시지 WP_Error->get_error_message()
방법.
경우 false
- 평소와 같이 진행합니다.
용법:
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();
}
헤이,
먼저 날씨를 확인하여 결과가 WP_Error
객체인지 여부 를 확인하십시오 .
$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
}
}
이것은 일반적인 방법입니다.
그러나 WP_Error 객체는 오류가 발생하지 않고 인스턴스화 될 수 있으며 경우에 대비하여 일반적인 오류 저장소로 작동합니다. 그렇게하려면 다음을 사용하여 오류가 있는지 확인할 수 있습니다 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
}
그렇게하면 wp_insert_post()
위 예제와 같이 프로세스에서 반환 된 오류를 확인할 수 있습니다 .
클래스는 Codex에 문서화되어 있습니다.
그리고 여기에도 작은 기사가 있습니다 .
$wp_error = wp_insert_post( $new_post, true);
echo '<pre>';
print_r ($wp_error);
echo '</pre>';
이것은 wordpress post insert 기능의 문제점을 정확하게 보여줍니다. 그냥 시도 해 봐 !
WP_Error
가 아닙니다Exception
. 당신은try/catch
그것에 방법을 사용하지 않습니다 . 그러나 언급했듯이 사용하기 편리한 편의 기능이 있습니다.