Otomatik yükleme ve seçenekler tablosuyla performans


12

Masanın autoloadsütunu ile oynuyorum options. Otomatik yüklenen değerlerin nasıl kullanıldığı hakkında fazla bilgi bulamadım. Bir denedim print_r($GLOBALS)ve otomatik yüklenen seçeneklerin saklandığını gördüm $GLOBALS['wp_object_cache']->cache['options']['alloptions'].

Bu değişkenlere erişmenin başka bir yolu var mı?

my_optionFarklı şablonlarda (örneğin header.php, bir kez, bir kez footer.php) otomatik olarak yüklenecek bir seçeneğe erişmem gerektiğini varsayalım , hangi yöntem önerilir?

  1. $GLOBALS(Değer zaten burada olduğu için) diziden almak tamam mı
  2. Bir get_option('my_option')kez kullanmalı ve değişkeni yeniden globalleştirmeliyim
  3. get_option('my_option')Her seferinde kullan (bunu yapmanın anlamını görmüyorum)
  4. Başka bir şey

Yanıtlar:


23

Otomatik yüklenen değerlerin nasıl kullanıldığı hakkında fazla bilgi bulamadım.

Otomatik yüklenen seçenekler için özel bir durum yoktur, bunlar normal seçeneklerle aynı şekilde kullanılır, ancak tablonun hangi autoloadsütununun optionsanlamını anlayalım. Bu sütun, bir isteğin başlangıç ​​aşamasında bir seçenek getirmemizin gerekip gerekmediğini veya yalnızca isteğe bağlı olarak bir seçenek getirmemiz gerektiğini belirler.

Ancak bu otomatik yükleme gerçekleştiğinde ve ne işlev görür? Tüm otomatik yükleme seçenekleri, her HTTP isteğinin başlangıcında WP tarafından işlenen işlev wp_load_alloptionstarafından çağrılan işlev tarafından yüklenir ve önbelleğe is_blog_installedalınır.

Özetleyelim: otomatik yüklenen seçenek aynı seçenektir, ancak WP tarafından HTTP istek işlemenin başlangıcında yüklenir.

Bir seçeneğe erişmem gerektiğini varsayalım ... hangi yöntem önerilir?

  1. $GLOBALSDoğrudan almak , get_optionbunun yerine kullanmak kötü bir yaklaşımdır.
  2. Özelleştirilebilen değişkenleri genelleştirmek hoş karşılanmaz ve mümkün olduğunca az yapılması önerilir
  3. Benim açımdan bu sizin için en iyi seçenek
  4. Başka bir şey bile düşünmeyin :)

Neden get_optionher seferinde fonksiyon kullanmak en iyi seçenektir? Çünkü:

  1. İlk ve en önemli nedeni : Eğer o kadar güncel değerini, diyorsunuz her zaman dönecektir emin olabilirler.
  2. İleride yeniden kullanmak için önbelleğe alır.
  3. option_optionnameFiltre ekleyerek diğer eklenti ve temanın seçeneklerinizi kancalamasına izin verir .
  4. Henüz yüklenmediyse bir seçenek getirilir.

1
+1 çok bilgilendirici cevap. Daha önce seçenek kancasını hiç duymadım :)
RRikesh

@rrikesh ur karşılama, umut yeterince iyi açıklıyor
Eugene Manuilov
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.