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.