Fix: Filter allowed blocks through AllowedBlockLists::filter_valid_blocks()#23
Conversation
…ocks() Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
|
The PR makes a single-line change in No issues found with this change. The fix is correct and minimal:
The only concern is a pre-existing one (not introduced by this PR): the strict array comparison |

Bug được report trong ticket: https://helpdesk.elightup.com/conversation/13686?folder_id=35
Lỗi xảy ra
Allowed memory size exhausted (256MB).Nguyên nhân
mbb_allowed_block_lists.Đoạn code gây ra vấn đề
vendor/wpmetabox/mbb-parser/src/Unparsers/Field.phpunparse_field_block_editor()Giải thích
Khách trước đây đã cài một plugin tên gothe (hiện đã deactivate), plugin này đăng ký hai block:
consenta/conditional-contentconsenta/consent-statusHai block này vẫn còn được lưu trong database.
Trong mỗi lần chạy:
$listchỉ chứa danh sách các block hiện đang được đăng ký.$blockslại vẫn chứa cảconsenta/conditional-contentvàconsenta/consent-status.Do
$listvà$blocksluôn khác nhau, Meta Box Builder luôn tạo một danh sách mới và ghi lại vào optionmbb_allowed_block_lists, khiến option này liên tục phình to theo thời gian.Giải pháp
Lọc bỏ các block không còn được đăng ký trước khi so sánh:
Việc này sẽ loại bỏ các block không hợp lệ, giúp
$blockschỉ chứa các block đang được đăng ký và ngăn optionmbb_allowed_block_liststiếp tục tăng kích thước không cần thiết.