Có phải tất cả các tùy chọn được tải vào bộ nhớ trên mỗi yêu cầu?


25

Có phải tất cả các biến tùy chọn được tìm nạp từ cơ sở dữ liệu và được tải vào bộ đệm trên mỗi yêu cầu không?

Câu trả lời:


24

Ừ kiểu vậy, chắc vậy. Khi get_optioncuộc gọi được thực hiện, WordPress sẽ chạy một chức năng được gọi wp_load_alloptions, trong đó lấy một bản sao được lưu trong bộ nhớ cache của tất cả các tùy chọn được tải tự động hoặc tải tất cả các tùy chọn đó vào bộ đệm. Sau đó wp_load_alloptionstrả về một mảng của tất cả các tùy chọn tự động tải. Nếu tùy chọn của bạn được tự động tải (được chỉ định khi bạn sử dụng add_optionchức năng), nó sẽ là một phần của mảng này và được trả về.

Nếu tùy chọn của bạn không được tải tự động, thì WordPress sẽ tìm trong bộ đệm riêng cho tùy chọn đó và trả về giá trị nếu có. Nếu bỏ lỡ, dự phòng cuối cùng là vào cơ sở dữ liệu, tìm nạp giá trị, đặt bộ đệm và sau đó trả lại.

Cuối cùng, nếu không có tùy chọn nào được tìm thấy (ví dụ: tên tùy chọn không hợp lệ), WordPress sẽ lưu tên của tùy chọn đó trong một mảng được lưu trong bộ nhớ cache notoptions. Nếu các cuộc gọi tiếp theo đến tùy chọn không được thực hiện, WP sẽ kiểm tra mảng thông báo trước để không mất thời gian kiểm tra thứ gì đó không có ở đó.

Nếu bạn lo lắng về việc gọi get_optionnhiều lần cho mỗi lần tải trang, đừng. WordPress sẽ lưu trữ giá trị tùy chọn sau get_optioncuộc gọi đầu tiên bất kể có tự động tải hay không.

Kiểm tra nguồnget_option để xem những gì đang xảy ra.


3

Không,

chỉ các tùy chọn được tải cụ thể với tự động tải được đặt thành đúng

Xem http://codex.wordpress.org/Function_Reference/add_option

Vì vậy, nếu đó là một tùy chọn cần thiết trên mỗi trang, khi bạn thêm nó vào db, hãy đặt autoload = true.

Sau đó, chỉ cần sử dụng get_option bình thường - wp sẽ xử lý bộ đệm, v.v.


1
WP xử lý bộ nhớ đệm bất kể tự động tải.
chrisguitarguy

0

Vâng,

Không cần thiết lập tự động tải thành có / đúng. Nó được đặt thành có theo mặc định: http://codex.wordpress.org/Function_Reference/add_option - tham số chức năng cuối cùng ($ autoload):

Tùy chọn này có nên được tự động tải bởi hàm wp_load_alloptions () (đặt tùy chọn vào bộ đệm đối tượng trên mỗi lần tải trang) không? Giá trị hợp lệ: có hoặc không. Mặc định: có

Mặc dù, nếu bạn đặt thành không, thì tùy chọn sẽ không được đặt trong bộ đệm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.