কীভাবে ধরবেন / ডাব্লুপি ত্রুটিযুক্ত বিষয়টি কী করবেন


15

আমি WP_insert_post () সহ একটি প্লাগইনের ভিতরে ডাব্লুপি কয়েকটি ফাংশন সরাসরি চালিয়ে যাচ্ছি, যদি কিছু ভুল হয়ে যায় তবে এটি ডাব্লুপি ত্রুটিযুক্ত বস্তুটি ফিরিয়ে দেয়, এই ত্রুটিটি ধরার সঠিক পদ্ধতি কী? হয় ডাব্লুপি ফাংশন বা পিএইচপি ব্যতিক্রম বা বিল্ট ইন ব্যবহার করে না ..


4
শুধু যোগ এবং নির্মল কি উত্তর এখানে বলা হয় যাও, WP_Errorহয় না পিএইচপি Exceptionঅবজেক্ট। আপনি try/catchএটি দিয়ে পদ্ধতি ব্যবহার করবেন না । তবে যেমনটি উল্লেখ করা হয়েছে, সহজেই এটি ব্যবহার করা সহজ করার জন্য সুবিধামূলক ফাংশন রয়েছে।
ডগল ক্যাম্পবেল

উত্তর:


21
  1. ভেরিয়েবলটিতে ফাংশনের রিটার্ন বরাদ্দ করুন।

  2. এর সাথে ভেরিয়েবল পরীক্ষা করুন is_wp_error()

  3. যদি trueসেই অনুযায়ী হ্যান্ডেল হয়, উদাহরণস্বরূপ পদ্ধতি trigger_error()থেকে বার্তা সহ WP_Error->get_error_message()

  4. যদি 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();
}

11

hei,

প্রথমে, আপনি আবহাওয়া যাচাই করে নিন আপনার ফলাফলটি কোনও 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
    }
}

এটি স্বাভাবিক উপায়।

তবে ডাব্লুপি_আরর অবজেক্টটি কোনও ত্রুটি না ঘটলে তা ইনস্ট্যান্সিয়েটেড করা যেতে পারে, কেবলমাত্র সেক্ষেত্রে সাধারণ ত্রুটির স্টোর হিসাবে কাজ করতে। আপনি যদি এটি করতে চান, আপনি ব্যবহার করে কোনও ত্রুটি আছে কিনা তা পরীক্ষা করতে পারেন 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_insert_user ব্যবহার করে।
মোহাম্মদ মুরসালীন

1
$wp_error = wp_insert_post( $new_post, true); 
                              echo '<pre>';
                              print_r ($wp_error);
                              echo '</pre>';

এটি আপনাকে ওয়ার্ডপ্রেস পোস্ট সন্নিবেশ ফাংশনটিতে ঠিক কী ঘটবে তা দেখাবে। এটা চেষ্টা করুন !

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.