Pular para o conteúdo principal

Hook

Classe responsável por registrar e executar actions e filters em pontos específicos.


Método: append_action()

Registra um callback em um hook action.

Parâmetros:
$name string : Nome do hook.
$callback callable : Função a ser executada.

Retorno: void

Exemplo:

Hook::append_action( 'document_signals', function() {
    echo '<meta name="robots" content="noindex, nofollow">';
});

Método: has_action()

Verifica se existe registro de hook action específico.

Parâmetros:
$name string : Nome do hook.

Retorno: bool

Exemplo:

if( Hook::has_action('comment_area_loaded') ) {
    import_script( template_url('assets/js/reply.js') );
}

Método: destroy_actions()

Remove todos action registrados em um hook específico.

Parâmetros:
$name string Nome do hook que deseja remover

Retorno: bool

Exemplo:

Hook::destroy_actions('priority_head');

Método: call_action()

Executa todas as funções registradas por hooks actions.

Parâmetros:
$name string Nome do hook.
...$args mixed Múltiplos argumentos enviados aos callbacks registrados.

Retorno: void

Exemplo:

Hook::call_action( 'save_context', $key );

Método: append_filter()

Registra uma callback responsável por alterar o valor de um dado filter.

Parâmetros:
$name string Nome do filter.
$callback callable Função a ser aplicada.

Retorno: void

Exemplos:

Hook::append_filter( 'post_title', 'strtoupper' );

Hook::append_filter('orderby', function($orderby) {
    return "updated DESC";
});

Método: has_filter()

Verifica se existe alguma função registrada para um filter específico.

Parâmetros:
$name string : Nome do filter.

Retorno: bool

Exemplo:

$order = "categories.create ASC";
if( Hook::has_filter('orderby') ) {
    $order = Hook::call_filter('orderby', null);
}
return $order;

Método: call_filter()

Executa todas as funções registradas para um filtro e retorna o valor final modificado.

Parâmetros:
$name string : Nome do filter.
$value mixed : Valor inicial.
...$args mixed : Argumentos adicionais passados às funções registradas.

Retorno: mixed

Exemplo:

$menu = Hook::call_filter( 'dashboard_menu', $menu );

Método: destroy_filters()

Remove todos os filters registrados em um hook específico.

Parâmetros:
$name string Nome do hook filter que deseja remover

Retorno: bool

Exemplo:

Hook::destroy_filters('run_dashboard');

Notas:
  • Callbacks podem ser funções nomeadas ou closures.
  • Actions executam comportamentos. Filters manipulam valores.
  • A execução dos append_* depende da posição onde call_* é chamado no fluxo da aplicação.