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

Trabalhando com classes, modelos e parciais no WordPress

6

Quando me sentei para começar este post, planejei escrever algo muito mais envolvente do que o que vou compartilhar. Inicialmente, eu queria passar por uma de duas coisas:

  • O guia completo para configurar um ambiente de desenvolvimento,
  • Integrando Ferramentas de Qualidade de Código no PhpStorm

A primeira seria focar em uma variedade de outras coisas sobre as quais falei, unindo-as todas e tendo uma referência definitiva. Mas isso é algo que eu quero ter tempo para montar para garantir que seja feito corretamente.

O segundo é um que acho importante, mas estou em uma fase de transição com algumas das minhas próprias ferramentas. Até que isso seja feito, prefiro não escrever sobre isso.

Mesmo assim, sempre há algo para cobrir, certo? Então, hoje optei por algo mais simples: detalhando o uso de classes, templates e parciais em plugins do WordPress usando um exemplo simples.

Classes, modelos e parciais no WordPress

Para este tópico em particular, uma pergunta imediata que pode vir à mente é simples: por que se preocupar em falar sobre isso?

Porque é 2018 e ainda estamos vendo uma mistura bruta de PHP, CSS, marcação e JavaScript em um único arquivo. Isso não é para bater em outras tecnologias que fazem isso por padrão (como React). Estou falando especificamente sobre plugins do WordPress e escrever código sustentável de forma que seja fácil [obviamente] manter, escrever e ler.

Um exemplo prático

Digamos que você esteja trabalhando em uma página de submenu para algo que aparecerá em um menu personalizado. Você registra sua página usando a API do WordPress:

Mas quando você configura uma função de retorno de chamada para exibir a página, você não usa a função para misturar todos os vários idiomas juntos. Em vez disso, você o usa para incluir um arquivo.

Observe que no arquivo acima, faço referência a uma propriedade $this->pluginPath. Isso é definido no construtor da classe para que eu possa acessar facilmente a raiz do plugin.

De qualquer forma, como seria esse arquivo?

Um modelo e um parcial

Nesse caso, suponho que seu modelo é o que fornecerá informações ao usuário e solicitará sua entrada. A parcial será responsável por exibir uma mensagem de sucesso, erro ou aviso ao usuário.

Uma amostra

Para simplificar, manterei o modelo e o parcial o mais enxutos possível. Nesse caso, suponha que vamos renderizar uma página, pedir ao usuário para salvar um valor e, se o valor for salvo com sucesso (e, portanto, existir na tabela wp_options ), exibiremos a mensagem de sucesso.

Isso significa:

  • o modelo exibirá o título da página, informações, entrada e botão salvar,
  • a parcial exibirá a mensagem de sucesso quando necessário.

Dê uma olhada no código para o modelo abaixo:

Observe que, sim, ele tem uma entrada, um botão salvar e um nonce, todos importantes (mas fora do escopo deste post) para salvar informações.

Mas observe também que ele tem uma função auxiliar que eu uso para verificar a presença de informações salvas com sucesso. Esta função reside na mesma classe responsável por renderizar o template.

Parcial

Parece algo assim:

E a parcial resultante é muito simples:

Claro, sua implementação da função pode variar. O objetivo não é tanto mostrar como implementar a função, mas como aproveitar uma função para verificar informações para exibir uma parcial.

Há mais (mas não aqui)

Talvez isso seja algo que deva ser colocado no início do artigo.

Para ser honesto, acho que é uma daquelas coisas em que alguns podem achar mais útil vê-lo desde o início (mas depois falta o contexto do código) e outros acham mais útil no final porque podem ver como tudo se encaixa juntos.

Independentemente disso, espero que, em última análise, forneça clareza sobre como tudo isso se encaixa.

Além disso, há muito espaço em lugares para que as coisas sejam personalizadas, como:

  • verificando se o usuário tem permissão para salvar,
  • verificando o valor nonce,
  • sanitizar e validar os dados,
  • determinar o que constitui sucesso, avisos e erros.

Mas se eu for cobrir todos os itens acima, estamos olhando para um post extraordinariamente longo ou uma longa série de posts. Isso não é algo que eu sou contra, mas também é algo que eu não faço agora e vale o esforço neste momento.

Nunca hesite em oferecer feedback. Mas, enquanto isso, espero que tudo isso ajude a fornecer uma base a partir da qual construir ao trabalhar em seu próximo projeto.

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