Não há limites nem penalidades de desempenho. Para entender por que, você precisa entender como todos os ganchos são armazenados no ecossistema WP.
Primeiro de tudo, você precisa entender onde todos os ganchos são armazenados e como eles fazem isso. Todos os ganchos para filtros e ações são armazenados na variável global chamada wp_filter
, sim, sim ganchos de ação também são armazenados nessa variável. Esta variável é array associado, onde key é o nome da ação ou filter e value é outro array associativo. Por exemplo, vamos dar uma olhada na ação 'init', nesse estágio veremos a seguinte estrutura:
$wp_filter = array(
'init' => array(...),
);
Esta sub-matriz possui chaves numéricas e valores como matrizes. Chaves numéricas são nossas prioridades. Matrizes, associadas a chaves numéricas, contêm uma lista de ganchos com a mesma prioridade. Portanto, se chamarmos add_action( 'init', 'wpse8170_my_first_init', 20 )
, ligue para add_action( 'init', 'wpse8170_my_second_init', 20 )
e, finalmente, chamaremos add_action( 'init', 'wpse8170_my_third_init', 10 )
, nosso exemplo será:
$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(...),
),
),
);
Agora, quando init
action for acionada, todos os ganchos serão classificados com o uso de ksort
e nossa matriz parece agora:
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(...),
),
),
E todos os ganchos serão executados nesta fila: primeiro 'wpse8170_my_third_init'
, depois 'wpse8170_my_first_init'
e finalmente 'wpse8170_my_second_init'
.
Então você pode ver que não há limites e penalidades e você pode usar qualquer valor que seja aceitável como uma chave para o array associado pelo seu ambiente PHP.