जवाबों:
फ़ंक्शन के चर पर वापस लौटें।
साथ चर की जाँच करें 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()
ऊपर दिए गए उदाहरण में।
क्लास को कोडेक्स पर प्रलेखित किया गया है ।
और यहाँ थोड़ा लेख भी है ।
$wp_error = wp_insert_post( $new_post, true);
echo '<pre>';
print_r ($wp_error);
echo '</pre>';
यह आपको दिखाएगा कि वर्डप्रेस पोस्ट इन्सर्ट फंक्शन में क्या गलत है। कर के देखो !
WP_Error
है न एक PHPException
वस्तु। आप इसकेtry/catch
साथ तरीकों का उपयोग नहीं करते हैं । लेकिन जैसा कि उल्लेख किया गया है, इसका उपयोग करना आसान बनाने के लिए सुविधा कार्य हैं।