Bug Report: Incorrect Data Returned with Different post_id Values in get_field
پاسخ ها: 0
بابت افزونه متشکرم استفاده از آن آسان است و دقیقاً همانطور که تبلیغ می شود کار می کند. با این حال، من متوجه یک اشکال شده ام که در زیر توضیح داده شده است:
مسئله:
اجرای فعلی تابع is_table_data_fetched فقط در صورتی بررسی میکند که گروه فیلد واکشی شده باشد، اما بررسی نمیکند که آیا دادههای واکشی شده با شناسه پست صحیح مطابقت دارد یا خیر. در نتیجه، هنگام حلقه زدن از طریق get_field با مقادیر مختلف post_id، تابع دادههای نادرست را برمیگرداند و از دادههای ذخیرهشده از پست قبلی به جای واکشی دادههای جدید برای پست فعلی استفاده میکند.
مراحل تکثیر:
- از get_field در یک حلقه با مقادیر مختلف post_id استفاده کنید.
- دادههای برگشتی که از پست دوم شروع میشوند، به جای واکشی دادههای تازه برای post_id فعلی، از حافظه پنهان مرتبط با پست اول میآیند.
رفتار مورد انتظار:
تابع باید هم گروه فیلد و هم post_id مرتبط را اعتبارسنجی کند تا اطمینان حاصل شود که داده های بازیابی شده برای post_id داده شده دقیق هستند.
رفع:
کد به روز شده وجود گروه فیلد در حافظه پنهان و اینکه آیا شناسه پست با شناسه درخواستی مطابقت دارد را بررسی می کند. این تضمین می کند که داده های صحیح برای هر پست بازیابی می شود.
فایل: include/class-acfct-register-hooks.php
protected function is_table_data_fetched( $acfFieldGroupKey, int $post_id ) {
$key = 'acf_ct_loaded_' . $acfFieldGroupKey;$has_table_data = array_key_exists( $key, $GLOBALS ) && $GLOBALS[ $key ] instanceof Acfct_table_data;
return $has_table_data && $GLOBALS[ $key ]->get_post_id() === $post_id;
}
این خبر را در ایران وب سازان مرجع وب و فناوری دنبال کنید
مشاهده پاسخ های این مطلب
———————————————
این مطلب از سایت انجمن وردپرس گردآوری شده است و کلیه حقوق مطلق به انجمن وردپرس می باشد در صورت مغایرت و یا بروز مشکل اطلاع دهید تا حذف گردد
منبع: انجمن وردپرس
این خبر توسط موتور ارتباط اقتصادی جمع آوری شده است در صورت مغایرت اطلاع دهید