Procurei uma explicação adequada da diferença entre add_filter()
e apply_filters()
aqui, mas não consegui encontrar uma.
Alguém pode me dizer quais informações ou lógica considerar antes de usar add_filter
ou apply_filters
em um contexto.
Isso torna obrigatório o uso de um e não do outro?
É correto que
add_filter
apenas adicione uma função à fila de funções aguardando para serem executadas em uma variável eapply_filters
execute as funções em ordem?Também está correto que
apply_filters
quando chamado com um argumento (o nome da função a ser executada) executará essa função antes de todas as outras (se elas existirem) na fila?
plugins
customization
hanachi
fonte
fonte
Respostas:
A maioria dos itens a seguir pode ser encontrada no Codex :
apply_filters
Em essência:
Você usa
apply_filters
para filtrar um determinado$value
- no que diz respeito ao próprio valor, bem como variáveis opcionalmente fornecidas$var_1
através$var_n
.add_filter
Essencialmente:
você usa
add_filter
para conectar uma função personalizada à ação de filtro fornecida ($tag
), que você pode ter geradoapply_filters
anteriormente (ou era uma ação de filtro interna ou deriva de um plug-in / seu tema).Então, aqui está um exemplo fictício :
Agora, se apenas chamarmos nossa função como está, as iniciais serão impressas da esquerda para a direita - porque é isso que definimos como comportamento padrão.
Na segunda vez, obtemos as iniciais na ordem inversa - porque a função de filtro
__return_true
, ligada à nossa ação de filtro, sempre retornaTRUE
e, assim, faz com que as iniciais sejam exibidas da direita para a esquerda.fonte