Her istek her seçenek için belleğe yüklenir mi?


25

Tüm seçenek değişkenleri veritabanından alınır ve her istek için önbelleğe yüklenir mi?

Yanıtlar:


24

Evet, sırala. Ne zaman get_optionçağrısı yapıldığında, WordPress adlı bir işlev çalıştırır wp_load_alloptionsya önbelleğine tüm otomatik yüklenmesi seçenekleri veya yükleri tüm bu seçenekleri önbelleğe alınmış bir kopyasını tutuyor. Ardından wp_load_alloptionstüm otomatik yüklü seçeneklerin bir dizisini döndürür. Seçeneğiniz otomatik olarak yüklendiyse ( add_optionişlevi kullandığınızda belirtilir ), bu dizinin bir parçası olur ve geri döndürülür.

Seçeneğiniz otomatik olarak yüklenmediyse, WordPress daha sonra özellikle bu seçenek için önbelleğe bakar ve varsa değeri döndürür. Bu işe yaramazsa, son geri dönüş veritabanına gitmek, değeri almak, önbelleği ayarlamak ve sonra geri döndürmektir.

Son olarak, hiçbir seçenek bulunmazsa (örneğin, seçenek adı geçersizdi), WordPress bu seçeneğin adını adı verilen önbelleğe alınmış bir dizide saklar notoptions. Seçeneği olmayandan sonraki çağrılar yapılırsa, WP ilk önce notoptions dizisini kontrol eder, böylece orada olmayan bir şeyi kontrol etmek zaman kaybetmez.

get_optionSayfa yükleme başına birden çok kez arama konusunda endişeleniyorsanız , olmayın. WordPress get_option, otomatik yüklenip yüklenmediğine bakılmaksızın , ilk aramadan sonra seçenek değerini önbelleğe alır .

Neler olup bittiğini görmek için kaynağa gözget_option atın .



0

Evet,

Otomatik yükü evet / true olarak ayarlamanıza gerek yoktur. Varsayılan olarak evet'e ayarlanmıştır: http://codex.wordpress.org/Function_Reference/add_option - son işlev parametresi ($ autoload):

Bu seçenek wp_load_alloptions () işlevi tarafından otomatik olarak yüklenmeli mi (), her sayfa yüklemesinde seçenekleri nesne önbelleğine koyar)? Geçerli değerler: evet veya hayır. Varsayılan: evet

Yine de, hayır olarak ayarlarsanız, seçenek önbelleğe alınmaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.