問題描述
我正在玩 options 表的 autoload 列。我沒有找到關於如何使用自動加載值的很多信息。我嘗試了一個 print_r($GLOBALS),看到自動加載的選項存儲在 $GLOBALS['wp_object_cache']->cache['options']['alloptions']中。
是否有另一種方式來訪問這些變量?
假設我需要在不同的模板中多次使用設置為自動加載的選項 my_option(例如,在 header.php 中一次,在 footer.php 中一次),建議使用哪種方法?
-
是否可以從
$GLOBALS數組檢索它 (因為值已經在這裏) -
我必須使用
get_option('my_option')一次,然後再次對變量進行全局化 -
每次使用
get_option('my_option')(我看不到要點) -
還有別的
最佳解決方案
I didn’t find much information about how the autoloaded values are used.
自動加載選項沒有特殊情況,它們的使用方式與常規選項相同,但是可以弄清楚 options 表的 autoload 列是什麼意思。這個列決定了我們需要在請求的初始化階段獲取一個選項,還是隻需要按需提取一個選項。
但是當這個自動加載發生時,它有什麼功能呢?所有自動加載選項由 wp_load_alloptions 功能加載和緩存,由 is_blog_installed 功能在每個 HTTP 請求的開頭調用,由 WP 處理。
總結一下:自動加載選項是相同的選項,但是在 WP 請求處理開始時加載。
Suppose I need to access an option … which method is recommended?
-
直接從
$GLOBALS檢索它是壞的方法,而不是使用get_option -
全球化的自定義變量是不受歡迎的,並建議儘可能少做
-
從我的角度來看,這是你最好的選擇
-
甚至不要想別的東西:)
為什麼每次使用 get_option 功能是最好的選擇?因為:
-
第一個也是最重要的因為:你可以確信它會返回 up-to-date 的值,每次你調用它。
-
它將緩存它以備將來重用。
-
它允許其他插件和主題通過掛接
option_optionname過濾器掛鈎您的選項。 -
如果尚未加載,它將獲取一個選項。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。