Tidak ada batasan dan tidak ada penalti kinerja. Untuk memahami alasannya, Anda perlu memahami bagaimana semua kait disimpan dalam ekosistem WP.
Pertama-tama Anda perlu memahami di mana semua kait disimpan dan bagaimana mereka melakukannya. Semua kait untuk filter dan tindakan disimpan dalam variabel global yang disebut wp_filter
, ya ya kait tindakan disimpan dalam variabel ini juga. Variabel ini adalah array terkait, di mana kunci adalah nama tindakan atau filter dan nilai adalah array asosiatif lain. Sebagai contoh, mari kita lihat aksi 'init', pada tahap ini kita akan melihat struktur berikut:
$wp_filter = array(
'init' => array(...),
);
Sub array ini memiliki kunci dan nilai numerik sebagai array. Kunci numerik adalah prioritas kami. Array, terkait dengan kunci numerik, berisi daftar kait dengan prioritas yang sama. Jadi jika kita menelepon add_action( 'init', 'wpse8170_my_first_init', 20 )
, lalu menelepon add_action( 'init', 'wpse8170_my_second_init', 20 )
dan akhirnya menelepon add_action( 'init', 'wpse8170_my_third_init', 10 )
, contoh kita akan terlihat seperti:
$wp_filter = array(
'init' => array(
20 => array(
'wpse8170_my_first_init' => array(
'accepted_args' => 1, // the number of accepted arguments by your hook
'function' => 'wpse8170_my_first_init', // callback function
),
'wpse8170_my_second_init' => array(...),
),
10 => array(
'wpse8170_my_third_init' => array(...),
),
),
);
Sekarang ketika init
aksi dipicu, semua kait akan diurutkan dengan penggunaan ksort
fungsi dan array kami terlihat sekarang:
array(
10 => array(
'wpse8170_my_third_init' => array(...),
),
20 => array(
'wpse8170_my_first_init' => array(
'accepted_args' => 1, // the number of accepted arguments by your hook
'function' => 'wpse8170_my_first_init', // callback function
),
'wpse8170_my_second_init' => array(...),
),
),
Dan semua kait akan dieksekusi dalam antrian ini: pertama 'wpse8170_my_third_init'
, lalu 'wpse8170_my_first_init'
dan akhirnya 'wpse8170_my_second_init'
.
Jadi Anda dapat melihat bahwa tidak ada batasan dan penalti dan Anda dapat menggunakan nilai apa pun yang dapat diterima sebagai kunci untuk array terkait oleh lingkungan PHP Anda.