add_action() com prioridade — Controlar ordem de execução
Causa
Quando múltiplos plugins e o tema hookeam a mesma ação, a ordem de execução impacta o resultado. Hooks registrados sem atenção à prioridade podem sobrescrever ou ser sobrescritos inesperadamente.
Como resolver
Use prioridade 5 ou menor para hooks que devem rodar cedo (como registro de CPTs). Use 20+ para hooks que devem rodar depois de plugins de terceiros.
PHP
<?php
// Prioridade 0 — muito antes de tudo (registro de recursos)
add_action('init', 'registrar_post_types', 0);
// Prioridade 10 — padrão
add_action('init', 'inicializar_plugin', 10);
// Prioridade 20 — após a maioria dos plugins
add_action('init', 'verificar_conflitos', 20);
// Prioridade PHP_INT_MAX — última coisa a rodar
add_action('template_include', 'meu_override_template', PHP_INT_MAX);
// Exemplo prático: garantir que nosso estilo seja carregado
// por último (sobrescrevendo outros plugins)
add_action('wp_enqueue_scripts', 'meu_enqueue_estilos', 9999);
function meu_enqueue_estilos(): void
{
wp_enqueue_style(
'meu-tema-override',
plugin_dir_url(__FILE__) . 'assets/css/override.css',
[], // sem dependências declaradas (carrega depois de tudo pela prioridade)
'1.0'
);
}