✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

O básico dos ganchos de ação no WordPress

40

Sempre que começa a entrar em programação mais avançada – seja no WordPress ou em qualquer outra estrutura, biblioteca, fundação ou linguagem de programação – há momentos em que novos conceitos podem ser mais difíceis de entender do que outros.

Eu geralmente descobri que isso é verdade sempre que uma pessoa aprendeu o básico de, digamos, programação orientada a objetos, mas não foi exposta às nuances de certas coisas, como padrões de projeto.

Caso em questão: eu escrevi sobre o padrão de design orientado a eventos (ou o publish-subscribe ou Pub/Sub como alguns gostam de se referir a ele) em outros posts.

Sim, existem algumas diferenças para cada um, mas a ideia geral é que algo acontece e um evento é gerado e qualquer coisa que esteja ouvindo esse evento, ou inscrito nesse evento, responderá.

O básico dos ganchos de ação no WordPress

Foto de Claus Grünstäudl no Unsplash

Este é o padrão principal que o WordPress emprega e que nos permite literalmente conectar-se a certos pontos de execução. Geralmente podemos conceituar isso como ganchos de ação no WordPress.

De qualquer forma, o aplicativo disponibiliza alguns pontos para adicionarmos nossa própria funcionalidade. Assim que essa funcionalidade for registrada, o WordPress deixará sua base de código, por assim dizer, entrará na nossa e retornará à nossa.

É bastante fácil de entender, mas e se você quiser expor áreas em seu código que permitem que outras pessoas se conectem ao seu código?

Ganchos de ação no WordPress

Antes de ver como o WordPress implementa esses padrões, é importante entender o básico desse padrão. Embora isso não seja abrangente, destina-se a ajudar a fornecer uma compreensão básica do padrão para que seja possível ler e escrever código centrado no WordPress.

Então, qual é uma boa maneira de pensar no padrão Pub/Sub? A Wikipedia define como:

Na arquitetura de software, publicar-assinar é um padrão de mensagens em que os remetentes de mensagens, chamados editores, não programam as mensagens para serem enviadas diretamente para receptores específicos, chamados assinantes, mas categorizam as mensagens publicadas em classes sem conhecimento de quais assinantes, se houver., pode ser. Da mesma forma, os assinantes manifestam interesse em uma ou mais classes e recebem apenas mensagens de seu interesse, sem conhecimento de quais editores, se houver, existem.

Entendendo o Padrão

Isso pode ser muito para absorver no início. Não sei, mas vamos por partes:

  1. Existe um serviço, no nosso caso o WordPress, que é responsável por publicar mensagens para quem está assinando (não necessariamente sabe quem está ouvindo).
  2. Quando um assinante estiver ouvindo, ele agirá sempre que ouvir essa ação.
  3. Assim que o código do assinante terminar de ser executado, o programa retornará ao ponto original de execução (que é para onde o editor enviou a mensagem).

Existem nuances para isso, como funcionalidade assíncrona e coisas assim, mas isso é mais avançado do que eu gostaria de obter neste post em particular. Afinal, o objetivo disso é estabelecer uma base para entender e implementar a funcionalidade.

A funcionalidade assíncrona pode entrar em threading ou Ajax e através desses são tópicos importantes, este não é esse post.

Como é isso no WordPress?

Talvez a maneira mais fácil de descrever esse padrão específico no WordPress seja através do uso das chamadas de função:

  • do_action
  • add_action

Às vezes, a nomenclatura pode ser confusa, mas simplesmente, do_action publica e um evento e add_action assinantes para um evento. Ou talvez uma maneira melhor de pensar nisso seja:

do_action diz ao WordPress para executar quaisquer ações que tenham sido adicionadas.

Às vezes, é útil ter frases simples para lembrar como as coisas funcionam. Não sei se a frase acima é a mais cativante ou a mais memorável, mas é alguma coisa, certo?

Além disso, observe que do_action e add_action são coisas essenciais para o WordPress e também estão disponíveis para nosso desenvolvimento. Antes de prosseguirmos, vamos dar uma olhada no que cada um significa:

Para do_action :

Esta função invoca todas as funções anexadas ao gancho de ação $tag. É possível criar novos ganchos de ação simplesmente chamando esta função, especificando o nome do novo gancho usando o $tagparâmetro.

O básico dos ganchos de ação no WordPress

Ou ainda mais simplesmente colocar:

Executar funções ligadas a um gancho de ação específico.

Ao se referir a ganchos, isso pode ser ganchos definidos pelo WordPress ou ganchos personalizados que você especifica em seu tema ou plugin.

O básico dos ganchos de ação no WordPress

Quanto a add_action :

Ações são os ganchos que o núcleo do WordPress lança em pontos específicos durante a execução ou quando ocorrem eventos específicos. Os plug-ins podem especificar que uma ou mais de suas funções PHP sejam executadas nesses pontos, usando a API Action.

O básico dos ganchos de ação no WordPress

E, da mesma forma, de forma mais simples:

Liga uma função a uma ação específica.

Definir isso praticamente é um pouco diferente porque geralmente usamos add_action para adicionar nosso próprio código ao WordPress.

Um exemplo prático

Por exemplo, talvez você tenha escrito algo assim:

<?php
add_action('wp_insert_post_data', __NAMESPACE__. 'processPermalink');
/**
 * Processes the permalink so we can remove any characters that may cause a problem when communicating
 * with the API.
 *
 * @param  array $data The array of information about the post.
 * @return array $data The data without the malformed information in the post name for the URL.
 */
public function processPermalink($data)
{
    if (!in_array($data['post_status'], array('draft', 'pending', 'auto-draft'))) {
        $data['post_name'] =
            preg_replace(
                '/(%ef%b8%8f|™|®|©|™|®|©|™|®|©)/',
                '',
                $data['post_name']
            );
    }
    return $data;
}

Nesse caso, em algum lugar na base de código do WordPress há uma chamada do_action para o gancho wp_insert_post_data e ele aceita uma função e passará pelo menos um único parâmetro.

Adicionando seus próprios ganchos

Mas e se você quiser dar a outros desenvolvedores a capacidade de se conectar ao seu plugin ou tema? Nesse caso, você deve se preocupar em usar do_action e a página vinculada anteriormente neste documento fornece tudo o que você precisa para configurar isso.

Na verdade, é muito mais simples, na minha opinião, do que trabalhar com add_action porque add_action fornece que não apenas nos conectamos a um editor existente, mas também adicionamos nossa própria lógica personalizada.

do_action por outro lado requer que forneçamos um nome da função a ser executada e então a lista de argumentos a serem passados ​​para a função que será executada.

É isso?

Em termos tão simples quanto posso fazer, sim. Existem algumas nuances sobre prioridade, número de argumentos e trabalho com namespaces e programação orientada a objetos. Mas, novamente, isso está fora do escopo deste post em particular. Talvez eu vou aprofundá-lo em outro post.

Por enquanto, porém, se você não estiver familiarizado com o básico de:

  • o padrão Pub/Sub,
  • do_action,
  • e add_action

Agora você está confortável o suficiente para ler o código com o qual está trabalhando, entender como o código está funcionando e até mesmo implementar suas próprias soluções quando necessário.

Atualmente estou escrevendo um eBook (junto com uma variedade de outros conteúdos premium). Se você estiver interessado, confira o que você recebe.

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação