Yanıtlar:
İçinde wp-settings.php
, WordPress ilk olarak kullanılması gereken eklentileri (isteğe bağlı mu-plugins
klasördeki eklentiler ) kontrol eder ve yükler.
Daha sonra, çok bölgeli bir kurulum çalıştırıyorsanız, ağda etkinleştirilen eklentileri kontrol eder ve bunları yükler.
Daha sonra veritabanı tablosunun active_plugins
girişine bakarak diğer tüm aktif eklentileri kontrol eder wp_options
ve bunlara göz atar. Eklentiler alfabetik olarak listelenecektir.
WordPress'in hemen hemen her şeyi yüklediği sıra: http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request
Mesele şu ki, her bir eklentinin hangi sırayla yüklendiği önemli değildir, çünkü düzgün yazılmış eklentiler WordPress başlangıcında daha sonra belirli noktalara işlevselliği bağlamanızı sağlayan WordPress kancalarını kullanır. (Düzgün yazılmış eklentiler işlevlerine ve sınıflarına önek ekler, böylece çakışma olmaz.)
Eklenti API'sı hakkında daha fazla bilgi: http://codex.wordpress.org/Plugin_API/
Tamamen eklentiye bağlıdır. WordPress eklentiye sadece bir dosya yükler, genellikle adlandırılmış the-plugin-name.php
ve üstte başlık, açıklama, yazar vb. Bu kullanarak, kendi dosyaları geri kalanını yüklemek için eklenti kalmış require_once
ve wp_enqueue_script
etajer.
apply_filters()
bir kanca oluşturmak için kullanıyor ancak kullanılan bir eklentiden önce çalışıyorsa add_filter()
, yine de çalışır mı? Mantıksal olarak, apply_filters()
zaten tetiklenmiş gibi görünüyor , bu nedenle add_filter()
ikinci eklentideki aramalar hiçbir şey yapmayacak. Yalnızca eklenti tarafından oluşturulan kancalar kullanılırken eklentilerin hangi sırada yüklendiği önemli midir?
apply_filters()
. add_filter()
önce çalıştırılmalıdır apply_filters()
. Eğer add_filter()
bir eklenti dosyasında değil, başka işlevi, bu çalışacağını plugins_loaded
genellikle ihtiyacım olacağını daha önce ne olacak kanca apply_filters()
.
the_content
- görünümlerinin sırası nasıl belirlenir?
Eklentilerime tüm eklentiler bu şekilde yüklendikten sonra çalışan bir 'geç yükleme' eylemi eklemenin yararlı olduğunu düşünüyorum:
add_action('plugins_loaded', 'my_late_loader');
My_late_loader işlevi, diğer tüm eklentilerden sonra başlatılır, bu da benim diğer işlevler tarafından tanımlanan kancaları kendi işlevimde my_late_loader içinde başlatılan my_other_function kullanmamı sağlar.
/**
* Late loading function for actions that must run after all plugins
* have loaded
*/
function my_late_loader(){
add_action( 'some_hook', 'my_other_function', 10, 1);
}
Bit kıvrık (biliyorum), ancak bu, eklenti yükleme sırasından bağımsız olarak eklenmeden önce diğer eklentilerin kancalarının oluşturulmasını sağlar.