Dalam urutan apa plugin dimuat di WordPress?
Dan di dalam folder plugin tertentu, urutan apa yang diikuti untuk memuat?
Dalam urutan apa plugin dimuat di WordPress?
Dan di dalam folder plugin tertentu, urutan apa yang diikuti untuk memuat?
Jawaban:
Di wp-settings.php
, WordPress pertama memeriksa setiap plugin yang harus digunakan (plugins di mu-plugins
folder opsional ) dan memuatnya.
Kemudian, jika Anda menjalankan instalasi multisite, ia memeriksa plugin yang diaktifkan jaringan dan memuatnya.
Kemudian memeriksa semua plugin aktif lainnya dengan melihat active_plugins
entri wp_options
tabel database, dan meng-loop melalui itu. Plugin akan didaftar berdasarkan abjad.
Inilah urutan WordPress memuat hampir semuanya: http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request
Masalahnya, biasanya tidak masalah urutan masing-masing plugin mana yang dimuat, karena plugin yang ditulis dengan benar akan menggunakan kait WordPress, yang memungkinkan Anda menghubungkan fungsionalitas ke poin tertentu nanti di startup WordPress. (Plugin yang ditulis dengan benar juga akan mengawali fungsi dan kelasnya sehingga tidak ada konflik.)
Info lebih lanjut tentang API plugin: http://codex.wordpress.org/Plugin_API/
Sangat tergantung pada plugin. WordPress hanya memuat satu file dalam plugin, yang biasanya dinamai the-plugin-name.php
dan berisi judul, deskripsi, penulis, dll. Di bagian atas. Terserah plugin untuk memuat sisa file, menggunakan require_once
dan wp_enqueue_script
dan yang lainnya.
apply_filters()
untuk membuat hook, tetapi berjalan sebelum plugin yang digunakan add_filter()
, maka apakah itu akan tetap berfungsi? Logikanya, sepertinya apply_filters()
sudah dipecat, jadi add_filter()
panggilan di plugin kedua tidak akan melakukan apa-apa. Apakah penting urutan apa yang dimuat plugin saat hanya menggunakan pengait yang dibuat plugin?
apply_filters()
berjalan. add_filter()
harus berjalan sebelumnya apply_filters()
. Jika add_filter()
ada dalam file plugin dan tidak dalam fungsi lain, itu akan berjalan pada plugins_loaded
hook yang umumnya akan terjadi sebelum Anda butuhkan apply_filters()
.
the_content
- bagaimana urutan penampilannya ditentukan?
Saya merasa perlu untuk memasukkan tindakan 'keterlambatan memuat' dalam plugin saya yang berjalan setelah semua plugin menyelesaikan bebannya seperti ini:
add_action('plugins_loaded', 'my_late_loader');
Fungsi my_late_loader kemudian diinisiasi setelah semua plugin lain yang memungkinkan saya untuk menggunakan kait yang ditentukan oleh plugin lain dalam fungsi saya sendiri my_other_function yang diinisiasi di dalam my_late_loader
/**
* 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);
}
Sedikit berbelit-belit (saya tahu), tetapi ini memastikan bahwa pengait di plugin lain dibuat sebelum ditambahkan terlepas dari urutan pemuatan plugin.