add_action() com prioridade — Controlar ordem de execução

Time Full Services Time Full Services
Tipo Hooks de ação
Nome do erro add_action() com prioridade — Controlar ordem de execução
Severidade Informativo
Desde WordPress 1.2
Descrição O terceiro parâmetro de add_action() define a prioridade de execução. Prioridade menor = executa antes. Padrão é 10. Compreender isso evita conflitos entre plugins.

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'
    );
}

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →