Hiệu suất với tự động tải và bảng tùy chọn


12

Tôi đang chơi xung quanh với autoloadcột của optionsbàn. Tôi không tìm thấy nhiều thông tin về cách sử dụng các giá trị được tải tự động. Tôi đã thử print_r($GLOBALS)và thấy rằng các tùy chọn tự động tải được lưu trữ trong $GLOBALS['wp_object_cache']->cache['options']['alloptions'].

Có cách nào khác để truy cập các biến đó không?

Giả sử tôi cần truy cập một tùy chọn my_option, được đặt thành tự động tải, nhiều lần trong các mẫu khác nhau (ví dụ: một lần vào header.php, một lần vào footer.php), phương pháp nào được khuyến nghị?

  1. Có ổn không khi tôi lấy nó từ $GLOBALSmảng (vì giá trị đã ở đây)
  2. Tôi phải sử dụng get_option('my_option')một lần và toàn cầu hóa biến một lần nữa
  3. Sử dụng get_option('my_option')mỗi lần (mà tôi không thấy điểm cần làm)
  4. Thứ gì khác

Câu trả lời:


23

Tôi không tìm thấy nhiều thông tin về cách sử dụng các giá trị được tải tự động.

Không có trường hợp đặc biệt nào cho các tùy chọn tự động tải, chúng được sử dụng theo cách tương tự như các tùy chọn thông thường khác, nhưng hãy tìm hiểu xem autoloadcột của optionsbảng có nghĩa là gì. Cột này xác định chúng ta có cần tìm nạp một tùy chọn ở giai đoạn khởi tạo của một yêu cầu hay chúng ta chỉ nên tìm nạp một tùy chọn theo yêu cầu.

Nhưng khi tự động tải này xảy ra và nó có chức năng gì? Tất cả các tùy chọn tự động tải được tải và lưu vào bộ đệm theo wp_load_alloptionschức năng, được gọi bởi is_blog_installedchức năng ở đầu mỗi yêu cầu HTTP, được xử lý bởi WP.

Cho phép tóm tắt: tùy chọn tự động tải là tùy chọn tương tự, nhưng được tải khi bắt đầu xử lý yêu cầu HTTP bởi WP.

Giả sử tôi cần truy cập vào một tùy chọn ... phương pháp nào được khuyến nghị?

  1. Đó là cách tiếp cận xấu để lấy nó $GLOBALStrực tiếp, sử dụng get_optionthay thế
  2. Toàn cầu hóa các biến tùy chỉnh không được hoan nghênh và được khuyến nghị thực hiện càng ít càng tốt
  3. Theo quan điểm của tôi, đó là lựa chọn tốt nhất cho bạn
  4. Thậm chí đừng nghĩ về điều gì khác :)

Tại sao sử dụng get_optionchức năng mỗi lần là lựa chọn tốt nhất? Bởi vì:

  1. Điều đầu tiên và quan trọng nhất bởi vì : bạn có thể tự tin rằng nó sẽ trả về giá trị cập nhật, mỗi lần bạn gọi nó.
  2. Nó sẽ lưu trữ nó để tái sử dụng trong tương lai.
  3. Nó cho phép các plugin và chủ đề khác móc tùy chọn của bạn bằng cách móc option_optionnamebộ lọc.
  4. Nó sẽ tìm nạp một tùy chọn nếu nó chưa được tải.

1
+1 câu trả lời rất nhiều thông tin. Chưa bao giờ nghe về móc tùy chọn trước đây :)
RRikesh

@rrikesh xin chào mừng, hy vọng nó giải thích đủ tốt
Eugene Manuilov
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.