Como usar ganchos de ação do WordPress na personalização de temas
Os temas infantis do WordPress oferecem uma maneira relativamente fácil de personalizar a aparência de um tema. Se as opções do tema não fornecem opções de design adequadas, você pode simplesmente adicionar uma nova regra ao arquivo de folha de estilo padrão do tema filho chamado style.css. Mas o que acontece quando você também quer modificar a funcionalidade do tema? Esse é um dos casos em que as ações do WordPress chegam à sua ajuda.
O WordPress se tornou tão popular em parte devido à sua alta capacidade de personalização. O WordPress Core é carregado com ganchos diferentes que permitem aos desenvolvedores modificar ou aprimorar a funcionalidade padrão. Além disso, estamos autorizados a incluir ganchos personalizados em nossos temas e plugins para ajudar outros desenvolvedores a ajustar facilmente nosso código às suas necessidades.
Sobre ganchos do WordPress
Ganchos do WordPress funcionam de forma semelhante aos ganchos da vida real, no sentido de que você pode pegar o peixe que você quer no lugar certo, se você usá-los corretamente.
Você pode remover uma função capturada (por exemplo, você pode remover a barra de administração do WordPress para usuários de baixo nível), você pode deixe-o intacto e aprimorá-lo com sua própria funcionalidade (por exemplo, você pode adicionar mais menus ou áreas de widgets a um tema) ou pode substituí-lo (por exemplo, você pode modificar o comportamento de uma função principal).
Existem dois tipos diferentes de ganchos no WordPress: ações e filtros. Neste post vamos dar uma olhada em como podemos faça uso de ganchos de ação na customização de temas.
Como funcionam os ganchos do WordPress
Para usar uma linguagem muito simples, ações indique aquilo algo aconteceu durante o ciclo de vida da página do WordPress: certas partes do site foram carregadas, certas opções ou configurações foram configuradas, plugins ou widgets foram inicializados e assim por diante.
Filtros são diferentes de ações em sua natureza. Eles estão acostumados a passar dados através, e modificar, gerenciar ou interceptar antes de renderizá-lo na tela ou salvar dados do usuário no banco de dados.
Em cada ponto de referência significativo do ciclo de vida da página do WordPress, existe açao ou um filtro gancho para o qual podemos adicione nosso código personalizado para modificar o comportamento padrão às nossas necessidades.
As determinadas ações e filtros em execução durante uma solicitação dependem de qual página foi solicitada pelo agente do usuário: por exemplo, em um único post, ganchos relacionados a postagens únicas estão disponíveis, mas ganchos relacionados a outras partes do site (por exemplo, a área administrativa) não são.
Encontrar ganchos de ação
A Referência de Ação do WordPress Codex fornece uma visão geral detalhada das ações executadas através de diferentes solicitações. O importante é que, se quisermos realizar uma tarefa, precisamos gancho no lugar certo, não antes ou depois, senão a ação não será completada.
Então, por exemplo, se quisermos adicionar nosso código do Google Analytics a um site nós precisamos enganchar nossa ação antes que o rodapé seja carregado.
Se falamos sobre personalização de temas, os ganchos de ação podem vir de dois lugares diferentes: de WordPress Core e o tema em si. Existem temas que não têm ganchos, mas outros fornecem aos desenvolvedores alguns ou muitos - é sempre a escolha do autor do tema. O padrão Twenty Fifteen Theme tem apenas um gancho de ação para personalização de rodapé sob o nome de 'twentyfifteen_credits'.
Se você gosta de navegar pelo código-fonte, também pode encontrar facilmente os ganchos de ação. Ganchos de ação são adicionados ao código com a função do WordPress do_action ().
Se você executar uma pesquisa rápida para a expressão 'do_action' em um editor de código mais avançado - como eu fiz no Eclipse abaixo - você pode ver uma lista sobre os pontos onde você pode conectar sua funcionalidade personalizada ao núcleo. Eu procurei no / wp-includes / pasta, mas você também pode executar uma pesquisa / wp-admin / pasta que contém os ganchos de ação relacionados ao painel do WordPress (área administrativa).
O bom é que os nomes dos ganchos de ação geralmente são bem autoexplicativos, mas há geralmente um bom comentário dentro do código que pode lhe dar mais conhecimento se o gancho de ação fornecido é bom porque você quer usá-lo para.
Por exemplo, o comentário de código antes do gancho de ação 'widgets_init' diz que “é acionado após todos os widgets padrão do WordPress terem sido registrados”. Se você der uma espiada no código antes deste gancho de ação, você pode encontrar toda a inicialização padrão dos widgets WP antes dele - assim você pode ter certeza que o comentário não mentiu, e se você quer registrar seu próprio widget customizado, este será o ponto certo.
Em muitos casos, o código-fonte nos fornece muito mais informações do que o Codex, por isso pode ser uma boa ideia aprender como navegar rapidamente nele..
Adicione suas próprias ações
Quando você quer adicionar sua própria ação, você precisa criar uma função personalizada e ligar esta função a um gancho de ação específico usando a função add_action () WordPress. Ações personalizadas adicionadas com a função add_action () são geralmente acionado no local quando o núcleo chama a função do_action () apropriada.
Vamos ver um exemplo simples.
Como encontrar o gancho de ação que você precisa
Digamos que você queira adicionar seu favicon personalizado ao seu site. Primeiro, você precisa encontrar o gancho de ação certo para vincular sua própria funcionalidade a.
Vamos pensar. Se você quisesse adicionar um favicon a uma página HTML simples, onde você o colocaria? Claro, você precisa colocá-lo dentro do
seção do arquivo HTML com a seguinte marcação:Então, o gancho de ação que você precisa deve ser relacionado com o carregamento do seção.
(1) Abra a Referência de Ação e veja o que ela tem para oferecer. Temos a sorte, como se navegarmos pelas ações, só podemos encontrar um, wp_head, que com base em seu nome tem a possibilidade de estar relacionado ao carregamento do
seção.(2) Para ter certeza, vamos verifique a documentação no WordPress Codex. O Codex aconselha que “você usa este gancho fazendo com que sua função echo output para o navegador”, então agora parece ser perfeito para nós. Mas vamos verificar no código fonte.
(3) Como este gancho não está relacionado com a área administrativa, precisamos executar nossa pesquisa no / wp-includes / pasta. Se procurarmos a palavra 'wp-head', obteremos muitos resultados, pois essa ação específica é usada pelo WP Core muitas vezes.
Precisamos procurar o local onde ele é definido, então procure a expressão do_action ('wp_head'. Note que não terminamos os parênteses, pois não podemos ter certeza ainda se essa ação tem parâmetros ou não.
O Eclipse retorna apenas um resultado que pode ser encontrado dentro do /wp-includes/general-template.php Arquivo. O comentário antes da definição de gancho de ação diz que “imprime scripts ou dados na tag head no front end”, então agora podemos ter certeza de que wp_head é o gancho de ação que precisamos.
Verificando Parâmetros
Quando você adiciona suas próprias ações, você também precisa ter certeza se o gancho que você quer usar requer parâmetros ou não. Você pode facilmente descobrir isso, olhando para a função do_action ().
A sintaxe da função do_action () é a seguinte:
do_action ('name_of_action' [, $ parameter1, $ parameter2,…])
Apenas o nome da ação é obrigatório, os parâmetros são opcionais. Se você encontrar argumentos na chamada relevante da função do_action (), você precisa incluí-los na declaração da função personalizada que você cria.
Se você não encontrar nenhum, sua função personalizada deverá funcionar sem argumentos. Na definição do_action () do gancho de ação wp_head, não há parâmetros.
Vamos comparar isso com um gancho de ação que usa um parâmetro. O hook de ação chamado 'wp_register_sidebar_widget' recebe um parâmetro que você sempre tem que passar para a função customizada que você liga ao hook.
Vamos ver a diferença na sintaxe do_action () dos dois casos:
do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);
No primeiro caso, não há parâmetro, portanto, a função personalizada usará a seguinte sintaxe:
function my_function_without_parameters () …
No segundo caso, há um parâmetro que você sempre deve passar como um argumento na declaração de sua função personalizada:
function my_function_with_parameters ($ widget) …
Como enganchar sua função personalizada
Agora sabemos tudo o que precisamos. Vamos criar nossa função personalizada que exibirá um favicon no nosso site.
Primeiro, crie uma nova função sem nenhum argumento e, em seguida, vincule-a ao gancho de ação wp_head com a ajuda da função add_action () do WordPress.
função custom_add_favicon () echo ''; add_action ('wp_head', 'custom_add_favicon');
Você precisa passe o nome do gancho de ação para a função add_action () como um argumento primeiro, então você precisa adicione o nome da sua função personalizada.
Esses são os dois parâmetros necessários de add_action (). Tem dois parâmetros opcionais também, prioridade e argumentos aceitos. Vamos ver como usar esses.
Definir prioridades
Acontece em muitos casos que há mais de uma ação vinculada ao mesmo gancho. assim qual deles será executado primeiro? É aqui que podemos usar o Parâmetro opcional de prioridade $ da função add_action ().
Adicionamos a prioridade como um número inteiro positivo, o valor padrão sendo 10. Se queremos que uma ação seja executada cedo, damos a ela um valor menor, se quisermos que ela seja executada mais tarde, damos um valor maior.
Então, se pensarmos que o favicon precisa estar lá cedo, podemos melhorar nossa chamada add_action () anterior da seguinte maneira:
add_action ('wp_head', 'custom_add_favicon', 5);
Por favor, note que as prioridades sempre têm que ser definir relativamente às outras funções personalizadas que usam o mesmo gancho de ação.
Adicionar o número de argumentos aceitos
Você é obrigado a adicionar o número de argumentos aceitos no caso de usar um gancho de ação que recebe parâmetros. Vamos ver o exemplo que usamos antes.
O hook de ação 'wp_register_sidebar_widget' recebe um parâmetro, então quando ligamos nossa função personalizada a este hook, também precisamos incluir isso como um argumento quando chamamos a função add_action ().
Nosso código, neste caso, ficará assim:
function my_sidebar_widget_function ($ widget) // Seu código add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1);
Note que devemos adicione também a prioridade (escolhemos o padrão 10 aqui) para garantir que o WordPress saiba o que cada parâmetro significa. Se omitimos a prioridade, o WordPress poderia supor que 1 é a prioridade o que não é verdade, pois indica o número dos argumentos aceitos.
Conclusão
Você pode fazer muitas experiências com ganchos de ação na personalização de temas. Por exemplo, você pode adicionar seus scripts personalizados (JS) e estilos (CSS) com o gancho de ação wp_enqueue_scripts ou seu código do Google Analytics com o gancho de ação wp_footer.
Você não só pode adicione suas próprias ações, mas você também pode remover funcionalidades completas do núcleo do WordPress com o uso da função remove_action () que usa a mesma lógica que add_action ().
Se você é autor de um tema e deseja criar um tema extensível, pode ser uma boa ideia adicione seus próprios ganchos de ação personalizados aos arquivos de modelo apropriados com a função do_action ().
Se você quiser fazer isso, pense cuidadosamente sobre parâmetros que outros desenvolvedores quem vai usar o seu tema terá que passar como argumentos quando eles querem ligar suas funcionalidades personalizadas.
Ao projetar os locais dos ganchos de ação personalizados do seu tema, não esqueça que não faz muito sentido incluir ganchos de temas personalizados nos mesmos pontos em que o próprio WordPress Core tem seus próprios ganchos.