Ganchos do WordPress: o guia essencial

Publicados: 2021-01-26

Os ganchos do WordPress são uma ferramenta útil projetada para desenvolvedores que fazem plug-ins e temas do WordPress. Na verdade, eles são tão úteis que os criadores do WordPress os utilizam em todo o núcleo do WordPress. Mas o que exatamente são ganchos do WordPress e como você os usa?

Neste guia, veremos como usar efetivamente os ganchos do WordPress e mergulharemos nos fundamentos. Vamos mergulhar!

Neste guia

    O que são ganchos no WordPress?

    Resumindo, os ganchos do WordPress são trechos de código do WordPress que capturam e executam trechos de outras partes do código do WordPress. Essencialmente, eles permitem que os desenvolvedores percorram vários arquivos facilmente em seus temas e plug-ins.

    Os ganchos do WordPress vêm embalados no núcleo do WordPress. Cada tema e plugin também os utiliza.

    Ganchos WordPress explicados

    O principal objetivo dos ganchos no WordPress é permitir que os desenvolvedores mudem fundamentalmente como o sistema de gerenciamento de conteúdo opera sem alterar os arquivos principais do WordPress. Como o WordPress é de código aberto, você pode mexer nos arquivos principais, mas há 99% de chance de você se arrepender em minutos.

    Embora possa ser um pouco difícil de entender para os desenvolvedores mais novos, é absolutamente crítico aprender como funcionam os ganchos do WordPress. Muitas vezes, surge a confusão por causa da terminologia que o WordPress usa. Embora a ação nos bastidores seja bastante semelhante à de muitas linguagens de programação, o palavreado é diferente. Geralmente, é mais fácil aprender como criar e usar primeiro seguindo os exemplos, lendo sobre eles e depois praticando.

    Para escrever ganchos para WordPress, você precisará ser capaz de codificar em PHP. PHP é a linguagem subjacente para a grande maioria do WordPress. Você pode pensar nos ganchos como aberturas às quais outras funções do PHP podem se agarrar. Você também pode pensar nos ganchos do WordPress como retornos de chamada que fazem algo aos dados ou à tela antes que o usuário os veja.

    Ganchos de WordPress

    Dois tipos de ganchos para WordPress

    Existem dois tipos principais de ganchos do WordPress que você precisa aprender:

    • Ganchos de ação do WordPress
    • Ganchos de filtro do WordPress

    Vamos dar uma olhada nesses dois tipos de ganchos do WordPress e como eles diferem. Também exploraremos alguns exemplos de ganchos de ação e ganchos de filtro para ilustrar melhor seu uso.

    A diferença entre os ganchos de ação e os ganchos de filtro do WordPress

    Se você passou um tempo revisando o códice do WordPress, provavelmente já viu esses termos usados ​​casualmente. Infelizmente, um dos pontos fracos do códice é que ele foi escrito pelos próprios desenvolvedores. Como efeito colateral, algumas distinções importantes que podem ser óbvias para eles, não são óbvias para aqueles que não estão tão familiarizados com o código principal do WordPress.

    A maneira mais fácil de diferenciar entre os dois tipos de ganchos do WordPress é que os ganchos de ação não retornam valores, enquanto os ganchos de filtro retornam valores.

    Para aqueles familiarizados com as linguagens de programação comuns, isso é como dizer que os ganchos de ação têm um tipo de retorno “void”, enquanto os ganchos de filtro retornam dados reais.

    Os ganchos de filtro podem ser considerados como ganchos ou eventos de pré-processamento. Um gancho de filtro pode filtrar os resultados retornados de uma consulta de banco de dados para conter apenas entradas com o sobrenome “Smith”. Esse gancho de filtro deve ser chamado antes que a consulta real do banco de dados seja chamada, informando com antecedência ao WordPress que será necessário retirar resultados irrelevantes antes de retorná-los.

    Os ganchos de ação do WordPress podem ser considerados como recuperar algo por meio de código. Um exemplo comum de um gancho de ação é a inserção de um arquivo CSS adicional em uma página do site para que ela tenha uma aparência diferente. Lembre-se de que os ganchos mudam como os dados são exibidos antes mesmo de serem entregues ao usuário. Um gancho de ação fornece um novo arquivo CSS que torna a experiência do usuário melhor. Este processo não envolve a edição do núcleo do WordPress nem requer a edição da raiz principal da web do site. Dessa forma, os ganchos do WordPress podem tornar muito mais fácil, em conjunto com os plug-ins, gerenciar vários sites do WordPress.

    Ganchos e filtros explicados

    Agora que vimos uma visão geral mais abstrata dos ganchos e filtros do WordPress, vamos mergulhar nos detalhes mais técnicos de como eles funcionam.

    Você pode pensar em um gancho do WordPress como um evento que ocorre com um nome. Um exemplo de um contido no núcleo do WordPress é chamado save_post . Com ganchos, basicamente dizemos que quando save_post é executado, queremos que nosso gancho ou filtro seja anexado e executado junto com ele.

    Anexamos o que chamamos de callbacks, ou funções de callback, aos ganchos no WordPress. Esta é apenas uma maneira sofisticada de dizer que estamos pedindo ao WordPress para executar o código contido nas funções que criamos quando o evento que “enganchamos” é disparado (como save_post em nosso exemplo acima).

    Embora seja fácil adicionar ganchos WordPress, como exploraremos mais tarde, lembre-se de que um retorno de chamada escrito incorretamente pode arruinar completamente sua cadeia de retornos de chamada. Se isso ocorrer, um link quebrado na cadeia de retornos de chamada pode arruinar completamente todo o seu trabalho árduo! Sempre faça um backup antes de fazer alterações. Aproveite as vantagens de um plug-in de backup WordPress confiável antes de fazer qualquer alteração.

    Interessado em ainda mais detalhes técnicos por trás de como funcionam os ganchos? Confira a próxima seção! Temos uma explicação mais aprofundada, bem como um tutorial sobre como criar seu primeiro gancho de ação e seu primeiro gancho de filtro!

    Como funcionam os ganchos no WordPress?

    Lembre-se, embora existam algumas diferenças, ganchos de ação e ganchos de filtro no WordPress podem ser vistos como basicamente os mesmos. Vamos examinar rapidamente como esses ganchos funcionam. Veremos um exemplo e um tutorial posteriormente neste artigo.

    Ambos os tipos de ganchos precisam ser registrados no WordPress antes de usá-los. Isso dá ao CMS a lista de funções a serem anexadas quando há um evento executado ao qual “enganchamos” nosso código. Além disso, certifique-se de que as ações sejam registradas como ações e os filtros sejam registrados como filtros.

    Ao adicionar uma ação, aproveite as vantagens da função principal do WordPress add_action () . Ao adicionar filtros, use a função central correspondente do WordPress chamada add_filter () . Se seus retornos de chamada (funções acima da cadeia quando seu evento ou ação é executado) não retornam nenhum dado, você precisa registrá-lo como uma ação. Se ele retornar o que o WordPress chama de dados filtráveis, registre-o como um filtro.

    Tudo o que você especificar nessas funções é executado quando seu site é aberto por um usuário. O WordPress tem um gerador interno que reúne todas essas ações e filtros para nós. Existem também funções de remoção correspondentes para ações e filtros. Eles podem ser utilizados para eliminar uma função de sua cadeia de retorno de chamada. Eles geralmente estão contidos em declarações condicionais no PHP do WordPress.

    Assim como nossas funções add, eles são chamados remove_action () e remove_filter ().

    Como faço para criar um gancho no WordPress?

    Finalmente chegou a hora de fazermos nosso primeiro gancho no WordPress! Lembre-se de que a criação de ganchos envolve a adição de código personalizado que será exibido e renderizado para os usuários do nosso site.

    Observe que sempre que adicionamos um código personalizado, adicionamos algum nível de risco de segurança. É por isso que agora seria o momento ideal para garantir que você tenha um plug-in de segurança do WordPress no qual possa confiar instalado e pronto para usar. Isso pode ajudar com paz de espírito e amenizar quaisquer ameaças potenciais ao seu site por meio de código personalizado que pode introduzir novas vulnerabilidades.

    Obtenha o conteúdo bônus: um guia para segurança do WordPress
    Clique aqui

    Vamos dar uma olhada em como podemos fazer um gancho de ação muito simples no WordPress. A seguir, veremos um exemplo de gancho de filtro no CMS.

    Como faço para criar um gancho de ação no WordPress?

    Para nosso exemplo de ação, vamos fazer algo que quase todos os desenvolvedores do WordPress precisarão fazer em algum momento: ajustar o conteúdo na página de login do WordPress. A página é muito genérica.

    Por exemplo, se você gerencia um site WordPress para uma instituição acadêmica, eles podem pedir que você lembre os alunos de usarem o endereço de e-mail do campus para fazer login no portal WordPress. Poderíamos adicionar um lembrete simples nas caixas “Nome de usuário” e “Senha” que diz “ Lembre-se de usar seu e-mail @ myuniversity.edu como seu nome de usuário ” para reduzir as chamadas para o departamento de TI pedindo ajuda para fazer o login.

    Isso, é claro, estaria mais alinhado com um gancho de ação em vez de um gancho de filtro. Isso ocorre porque um ajuste simples, como editar o texto na página principal de login do usuário, não retorna nenhum dado para o filtro.

    Primeiro, precisamos descobrir onde exatamente enganchar nossa ação. Na maioria dos casos, olhar para o arquivo PHP onde você deseja adicionar conteúdo pode ser muito esclarecedor. Dando uma olhada no arquivo WordPress que contém o conteúdo de login, há vários gatilhos de ação. Em nosso exemplo de nosso lembrete aos alunos para usarem seus e-mails institucionais, você notará o seguinte código bastante interessante no arquivo PHP da página de login:

     do_action ('login_footer');

    A função do_action é uma função central do WordPress que executa nosso gancho de ação mediante solicitação. Claro, isso é fornecido, desde que tenhamos registrado todas as funções que queremos anexar a este gancho.

    Nesse caso, “login_footer” é um gancho predefinido pela equipe do WordPress. Embora seja integrado, ainda podemos anexar nosso próprio código a ele. Por padrão, este gancho carrega o conteúdo do rodapé da página de login genérica. O rodapé seria um lugar ideal para nosso texto, por isso estamos aproveitando este gancho de seção da página.

    Podemos adicionar uma nova função PHP ao nosso wp-login.php para começar. Tudo o que precisamos fazer é gerar uma linha de texto, assim:

     function add_uni_email_reminder () {
    
    <p> Lembre-se de usar seu e-mail @ myuniversity.edu como nome de usuário! </ p>
    
    }
    
    do_action ('login_footer', 'add_uni_email_reminder');

    Neste caso, simplesmente criamos uma nova “ação” no arquivo wp-login.php . O nome da função do gancho de ação (add_uni_email_reminder), sem os parênteses de parâmetro, pode ser adicionado à lista de parâmetros de do_action () para registrá-lo para ser executado quando o rodapé for renderizado a seguir.

    Como faço para criar um gancho de filtro no WordPress?

    Agora estamos indo bem! Aprendemos o básico dos ganchos do WordPress e como aproveitar seu poder. Até fizemos uma pequena modificação nós mesmos! A única parte importante que resta é praticar com ganchos de filtro. Lembre-se, esses são ganchos que retornam algum tipo de dados que podemos filtrar. Eles são um pouco mais complexos do que os ganchos de ação, mas agora que você entende o básico dos ganchos, deve ser um pouco mais fácil.

    Vamos começar com nosso gancho de filtro do WordPress. Primeiro, precisamos decidir qual filtro específico gostaríamos de adicionar. Um item que seu cliente pode solicitar é personalizar a funcionalidade de adição de página. É aqui que os usuários do WordPress podem adicionar novas postagens de blog. Para mantê-lo o mais simples possível, digamos que queremos editar o texto “Digite o título aqui” contido na caixa de texto “Título”. Digamos que queremos torná-lo mais específico e dizer “Digite o título da postagem no blog”.

    Observe que em nosso exemplo de gancho de filtro abaixo, nossa função tem um parâmetro. Além disso, a execução real do nosso filtro tem um parâmetro de “prioridade” adicional. Você também notará que a função real que usamos para registrar nosso gancho é exatamente a mesma que nosso exemplo de “ação”, add_action . A maneira como podemos dizer que essa função é um gancho de filtro em vez de um gancho de ação é que, quando é realmente executada, a função executada, como podemos ver no código principal do WordPress, é apply_filters ('enter_title_here', __ ('Insira o título aqui' ), $ post); . Estamos aplicando filtros como o nome da função sugere fortemente.

    Isso geralmente é um ponto de interrupção para usuários mais novos. É realmente apenas um pequeno problema de redação; depois de superar isso, decifrar a diferença entre ganchos e filtros no WordPress se torna bastante simples! Sem mais adieu, vamos mergulhar na mudança desse texto de espaço reservado!

     function our_new_title_here ($ title) {
    
    $ title = __ ('Digite o título da postagem no blog', 'domínio do texto');
    
    return $ title;
    
    }
    
    add_action ('enter_title_here', 'our_new_title_here', 10);

    Você pode estar se perguntando o que esse “10” significa em nossa função add_action . Esperançosamente, você entende os primeiros dois parâmetros; o primeiro é o gancho padrão do WordPress e o segundo é o nome da função e do filtro que estamos anexando a enter_title_here . O “10” é o nível de prioridade que atribuímos a este filtro.

    Lembre-se de que as ações e os filtros no WordPress são uma série de "retornos de chamada" em cascata ou funções personalizadas que são executadas. Eles recebem diferentes níveis de prioridade. Exploraremos o que significam os diferentes números, quais são os parâmetros aceitáveis, etc., um pouco mais adiante. No entanto, é importante entender que 10 é o nível de prioridade “normal” padrão do WordPress para filtros e ações por enquanto.

    Onde os ganchos do WordPress são armazenados?

    Você pode estar se perguntando onde o WordPress poderia armazenar todas essas ações e filtros. Nós referenciamos o núcleo do WordPress, mas este é simplesmente o local de ações e filtros integrados e as funções anexadas a eles. Os usuários experientes do WordPress provavelmente sabem que esses ganchos não são armazenados em nenhum dos bancos de dados criados quando o WordPress é instalado.

    Um dos recursos mais exclusivos de ações e filtros no WordPress é que eles não estão realmente “armazenados” em lugar nenhum! Depois de adicionar uma ação ou filtro, essa ação ou filtro pode ser acessado globalmente em nosso site WordPress. Se você acha que não é possível armazená-lo em lugar nenhum , você está correto!

    Embora a estrutura seja bastante complexa, há uma variável PHP onde todas as nossas ações e filtros são armazenados. Esta variável é global e chamada $ wp_filter . Não mexa com essa variável diretamente!

    Para aqueles interessados ​​nos detalhes técnicos, esta variável $ wp_filter é um array PHP. Ele contém uma grande série de objetos do tipo WP_HOOK . Dentro do arquivo PHP você pode ler em wp-includes / class-wp-hook.php , há um método importante: this-> apply_filters () . Este método é o que dispara todos os nossos retornos de chamada e “registra” nossos filtros e ganchos personalizados. É essencialmente o pão com manteiga dos ganchos do WordPress.

    Para tirar o máximo proveito desse incrível recurso do WordPress, precisaremos conhecer alguns dos hoooks mais comuns do WordPress. Não procure além da nossa folha de dicas abaixo!

    Lista de Ganchos do WordPress: Folha de Dados dos Ganchos do WordPress

    Vamos começar com uma pequena dose de realismo: não há como revisar cada gancho do WordPress. Felizmente, alguns pesquisadores compilaram uma lista de (literalmente) cada ação e filtro, para aqueles que estão curiosos. Você pode ver uma lista completa de todos os ganchos do WordPress aqui, mas preste atenção aos avisos de segurança sobre cada um deles. Você não deve utilizar nenhum que esteja rotulado como “obsoleto”. Isso significa que eles podem ou não ser suportados na versão mais moderna do WordPress, mas de qualquer forma, em breve não serão suportados.

    Com toda a probabilidade, 90% das vezes, você estará interessado apenas em alguns ganchos do WordPress. Aqui estão cinco das ações e filtros mais populares no WordPress, junto com uma breve explicação do que são!

    1. add_setting () - Assim como o nome sugere, esta ação adiciona às suas configurações do WordPress. Você provavelmente não vai querer incluir essa ação em nenhuma página voltada para o usuário, mas pode ser um salva-vidas se você estiver modificando páginas administrativas.
    2. apply_filters () - Este parece familiar? Deveria, porque nós o usamos antes! Isso chama imediatamente toda a nossa cadeia de retornos de chamada associados a um gancho.
    3. esc_attr () - O nome deste é uma abreviação para “atributos HTML de escape”. O escape de HTML significa que usamos códigos ASCII para símbolos HTML. Isso é quase universalmente usado para “higienizar a entrada” nas páginas. Em outras palavras, essa ação seria altamente desejável para anexar a uma execução de gancho quando um usuário envia um formulário. Ele evita que os usuários ataquem seu site com ataques de script entre sites em particular.
    4. the_content () - O nome deste gancho provavelmente parece simples, porque é! Ele simplesmente pega o conteúdo da postagem atual que está sendo visualizada. Isso é ideal se você permite que os usuários exportem o conteúdo de uma postagem. Por exemplo, alguns sites oferecem aos usuários Premium a capacidade de exportar qualquer artigo como um arquivo PDF.
    5. wp_nav_menu () - abreviação de “WordPress Navigation Menu”, este gancho é um gancho de ação. É utilizado para simplesmente exibir o menu de navegação principal que você cria ao criar seu site WordPress pela primeira vez. Isso é ótimo se você tiver páginas com um layout significativamente diferente e quiser exibir o menu em uma área alternativa.

    Em que ordem os ganchos do WordPress são executados? A sequência de disparo de ganchos do WordPress

    Infelizmente, a ordem exata em que os ganchos do WordPress são executados não é tão aparente quanto você pode imaginar. Isso se deve ao grande volume dos ganchos. Um pesquisador realizou uma análise avançada disso para contar o número de ganchos em execução e a ordem em que foram executados quando a página inicial de um site WordPress foi visitada.

    Como se isso não fosse complexo o suficiente, alguns ganchos do WordPress possuem ganchos de várias prioridades! Você pode dar uma olhada nas centenas de ganchos executados e seus pedidos neste post sobre a sequência de disparos de ganchos do WordPress. Apenas observe: você não deve tentar executar esta análise em nada além de um servidor de teste onde você pode perder tudo!

    Embora não possamos fazer muito sobre a ordem dos ganchos padrão, podemos fazer algo sobre a ordem dos ganchos que especificamos. É aqui que entra a prioridade dos ganchos. Já mencionamos isso antes.

    Como funciona a prioridade nos ganchos do WordPress?

    Como mencionamos, o nível de prioridade padrão atribuído a um gancho pelo WordPress é “10”. Independentemente do que você decidir tornar a prioridade, lembre-se de que o valor deve ser um número inteiro positivo. Isso significa que, infelizmente, “0” não é um valor válido. Além disso, -100 não seria válido e 0,5 não seria válido. No entanto, 1 funcionaria, assim como 1111.

    Em geral, quanto menor o número inteiro, menor é a prioridade. Se você quiser que um gancho seja executado após um gancho que atribuiu o valor padrão de 10, por exemplo, você pode tornar sua prioridade 9. Seu gancho de prioridade mais baixa pode receber um 1. Além disso, os ganchos do WordPress podem receber o mesmo prioridade. Isso se você não se importar com a ordem em que eles são executados.

    Resumindo: Ganchos no WordPress

    Um dos maiores obstáculos para novos desenvolvedores WordPress é o quão não padronizadas muitas dessas informações podem ser. Embora você encontre muitos blogs técnicos, muitos cobrem tópicos restritos e podem ser difíceis de agregar.

    A melhor maneira é começar a experimentar os ganchos de ação e filtros do WordPress em seu site. Depois de criar ganchos WordPress mais complexos, você precisará aprender os ganchos que costuma usar com mais frequência. Com o tempo, você memorizará esses ganchos. É um processo árduo e ninguém é capaz de memorizar cada um desses ganchos.

    O códice do WordPress é o melhor recurso para utilizar em sua jornada para se tornar o próximo desenvolvedor de WordPress importante do mundo.

    Ganchos de WordPress