Acabei de olhar para o código wordpress e encontrei esta definição de add_action:
function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
return add_filter($tag, $function_to_add, $priority, $accepted_args);
}
Agora, por que estamos desperdiçando um ciclo de CPU apenas chamando outra função que podemos simplesmente executar por nós mesmos e depois não precisaremos lembrar de dois nomes de funções diferentes para a mesma coisa.
Respostas:
Ações fazem coisas. Os filtros modificam as coisas. Você faz coisas em uma ação, enquanto que, se aplicar um filtro, não espera que ocorram eventos ou ações, exceto a modificação do valor que está filtrando. Por exemplo, não há problema em enviar um email ou salvar um valor de banco de dados em um filtro, mas tudo bem em uma ação. Pode haver momentos raros em que você precisa violar esta convenção, mas é útil e necessária.
Ao substituir todas
add_action
edo_action
chamadas pelas respectivas contrapartes de filtro, você remove a distinção e força o conhecimento de nomes como'the_content'
ações ou filtros fora do mundo e em sua memória, incentivando erros.Portanto, em vez de dificultar a leitura do código, perceba que, se o código for lento, não é porque você não depilou uma instrução ou duas aqui e ali, é o servidor lento ou a estrutura algorítmica do código e a natureza dos dados sendo manipulados. Você poderia muito mais refatorar seus processos, atualizar o hardware ou alterar seus paradigmas. No grande esquema de coisas, um site lento provavelmente é lento porque faz muitas ou possui consultas mal escritas, por exemplo, publica consultas que dependem de meta ou
__not_in
digita consultasPara colocar em perspectiva, quando o WordPress é executado, o PHP executa milhões de instruções. A troca de filtros por filtros dificilmente chegaria ao milésimo de um percentil.
http://fabien.potencier.org/article/8/print-vs-echo-which-one-is-faster
Se você realmente quiser tentar, veja como o cara usou o VLD e teste sua teoria por si mesmo.
fonte