error handling در وردپرس با استفاده از شی wp_error

error در وردپرس

کلاس wp_error وظیفه error handling در وردپرس را برعهده دارد. این تابع در جای جای هسته و توابع مختلف استفاده شده است و همچنین در توسعه وردپرس نیز باید از این کلاس و آبجکت آن برای error handling استفاده نماییم.

فرض کنیم مقادیر نام کاربری و ایمیل کاربر را دریافت کرده ایم و قصد داریم اگر اطلاعات صحیح بود، اعمالی انجام شود و در غیراینصورت خطای لازم تولید شده و برگردانده شود.

$errors = new wp_error();
if ( $_POST['submit'] ) {
    if ( ! isset( $_POST['user_login'] ) ) {
        $errors->add( 1, 'username is empty' );
    }
    if ( ! is_string( $_POST['user_login'] ) ){
        $errors->add( 2, 'username is'nt string' );
    }
    if ( ! isset( $_POST['user_email'] ) ){
        $errors->add( 3, 'username is empty' );
    }
    if ( ! is_string( $_POST['user_email'] ) ){
    $errors->add( 4, 'email is'nt string' );
    }

    if( $errors->has_errors() ){
    return $errors;
    }else{
    //get param and continue
    }
}

در این قطعه کد می بینید که براحتی توانستیم خطاهای ایجاد شده را در شی ارورز بریزیم و در آخر چک کنیم که اگر آبجکت ما مقداری دارد، یعنی خطایی ایجاد شده است، آن خطا را به کاربر برگردانیم و در غیر اینصورت کاری که مدنظر داریم را اعمال کنیم.

برای استفاده از کلاس wp_error ابتدا باید یک شی از آن بسازیم. این شی در ابتدا حاوی هیچ خطایی نمی باشد.

پس از چک کردن و بررسی صحت شرط های مدنظر، می توانیم خطا را با استفاده از تابع add که یک متد این کلاس می باشد اضافه کنیم. پس از پایان اعتبارسنجی ها با استفاده از تابع has_errors چک می کنیم که آبجکت موردنظر ما آیا حاوی هیچ خطایی است یا خیر.

طبعا اگر هیچ خطایی در فرآیند اعتبارسنجی رخ نداد (has_errors مقدار false را برگرداند)، می توانیم دستورات مدنظر را اعمال کنیم و درغیر اینصورت برنامه متوقف شده و آبجکت حاوی خطاها به سمت کاربر فرستاده می شود.

برای مشاهده کلاس wp_error و متدهای آن باید به سراغ فایل class-wp-error.php موجود در فولدر wp-includes بروید. در پست های آینده به صورت مفصل در مورد پراپرتی ها و متدهای این کلاس صحبت خواهیم کرد.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


مطالب مرتبط