Немає обмежень та жодних штрафних санкцій за виконання. Щоб зрозуміти чому, вам потрібно зрозуміти, як всі гачки зберігаються в екосистемі WP.
Перш за все вам потрібно зрозуміти, де зберігаються всі гачки і як вони це роблять. Усі гачки фільтрів і дій зберігаються в глобальній змінній wp_filter
, так званій , так, гаки дій також зберігаються в цій змінній. Ця змінна є асоційованим масивом, де ключовим є ім'я дії або фільтра, а значення - інший асоціативний масив. Наприклад, давайте подивимося на дії "init", на цьому етапі ми побачимо наступну структуру:
$wp_filter = array(
'init' => array(...),
);
Цей підмасив має числові ключі та значення у вигляді масивів. Цифрові ключі - це наші пріоритети. Масиви, пов’язані з цифровими клавішами, містять список гачків з однаковим пріоритетом. Тож якщо ми зателефонуємо add_action( 'init', 'wpse8170_my_first_init', 20 )
, то зателефонуйте add_action( 'init', 'wpse8170_my_second_init', 20 )
та нарешті зателефонуйте add_action( 'init', 'wpse8170_my_third_init', 10 )
, наш приклад матиме вигляд:
$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(...),
),
),
);
Тепер, коли init
запускається дія, всі гачки будуть відсортовані за допомогою ksort
функції, і наш масив виглядає зараз:
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(...),
),
),
І всі гачки будуть виконані в цій черзі: спочатку 'wpse8170_my_third_init'
, потім 'wpse8170_my_first_init'
і нарешті 'wpse8170_my_second_init'
.
Таким чином, ви можете бачити, що немає обмежень і штрафних санкцій, і ви можете використовувати будь-яке значення, прийнятне як ключ для асоційованого масиву у вашому середовищі PHP.