Não há limites nem penalidades de desempenho. Para entender o porquê, você precisa entender como todos os ganchos são armazenados no ecossistema WP.
Antes de tudo, você precisa entender onde todos os ganchos estão armazenados e como eles o fazem. Todos os ganchos para filtros e ações são armazenados na variável global chamada wp_filter
, sim sim, os ganchos de ação também são armazenados nessa variável. Essa variável é uma matriz associada, em que key é o nome da ação ou filtro e o valor é outra matriz associativa. Por exemplo, vamos dar uma olhada na ação 'init'; neste estágio, veremos a seguinte estrutura:
$wp_filter = array(
'init' => array(...),
);
Essa sub-matriz possui chaves e valores numéricos como matrizes. Chaves numéricas são nossas prioridades. Matrizes, associadas a teclas numéricas, contêm uma lista de ganchos com a mesma prioridade. Portanto, se ligarmos add_action( 'init', 'wpse8170_my_first_init', 20 )
, ligar add_action( 'init', 'wpse8170_my_second_init', 20 )
e finalmente ligar add_action( 'init', 'wpse8170_my_third_init', 10 )
, nosso exemplo será semelhante a:
$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 a init
ação é acionada, todos os ganchos serão classificados com o uso da ksort
função e nossa matriz ficará 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'
.
Portanto, você pode ver que não há limites e penalidades e pode usar qualquer valor que seja aceitável como chave para a matriz associada pelo seu ambiente PHP.