Coisas para manter em mente ao criar um plug-in WordPress do zero

Publicados: 2022-01-02

Um plug-in WordPress é, na verdade, um único arquivo ou grupo de arquivos que estende ou aprimora a funcionalidade de um site WordPress.

Todo novo desenvolvedor sabe “Como codificar?”, Mas ao criar um plugin no WordPress, o desenvolvedor deve se lembrar de alguns requisitos básicos para criar o plugin do WordPress, além da qualidade do código, segurança e funcionalidade.

Este guia descreve etapas importantes a serem lembradas ao criar plug-ins do WordPress do zero.

Nos plug-ins do WordPress, uma coisa crítica para entender são os ganchos do WordPress, por exemplo, ações e filtros. Os ganchos permitem que os plug-ins sejam executados com funcionalidade definida em momentos específicos nas funções do WordPress.

Lista de ganchos de ação: https://codex.wordpress.org/Plugin_API/Action_Reference

 define ('WP_DEBUG', verdadeiro);
--- A opção WP_DEBUG foi adicionada no WordPress versão 2.3.1.
--- Por padrão, presume-se que seja falso. No entanto, geralmente é definido como verdadeiro no arquivo wp-config.php.

-> Adicionar um cabeçalho de informações específicas do plugin ao nosso arquivo recém-criado na pasta Plugin.

 / *
Nome do plug-in: tipo de postagem de testemunho
URI do plug-in: https://wordpress.org/plugins/testimonial-post-type/
Descrição: Crie um tipo de postagem de depoimento, é Taxonomia e Marcas.
Versão: 1.0
Autor: Elsner Technologies Unip. Ltd.
URI do autor: https://www.elsner.com
Domínio de texto: tipo de pós-testemunho
Caminho do domínio: / idiomas
* /

Relacionado: Plug-in WordPress lançado recentemente por Elsner: código abreviado do controle deslizante de postagens

-> Todos os plug-ins devem ter nomes de funções, definições e nomes de classe exclusivos.

Isso evita que seu plug-in entre em conflito com outros plug-ins ou temas.

-> Não use __ (sublinhado duplo), wp_ ou _ (sublinhado simples) como prefixo.

Esses são reservados para o próprio WordPress. Você pode usá-los dentro de suas classes, mas não como uma função autônoma

-> Proteja seu plugin do acesso direto ao arquivo.

 if (! defined ('ABSPATH')) sair; // Saia se acessado diretamente

- Você pode evitar o acesso direto aos arquivos, colocando este código no topo de todos os arquivos php:

-> Por favor, adicione um nonce às suas chamadas POST para prevenir o acesso não autorizado.

nonce (número usado uma vez)

Os nonces do WordPress não são números, mas um hash composto de números e letras. Nem são usados ​​apenas uma vez, mas têm uma “vida útil” limitada, após a qual expiram.

Normalmente geramos um url como este que exclui post_id 174
http://example.com/wp-admin/post.php?post=123&action=trash

Este url é perfeito, mas não é seguro. Suponha que um invasor saiba a id das postagens, então o invasor pode deletar as postagens com este url sem o seu conhecimento.

Adicionar um nonce evitará isso. Por exemplo, ao usar um nonce, o url que o WordPress gera para o usuário fica assim:
http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204

 $ nonce = wp_create_nonce ('minha-ação_trash');

- Isso simplesmente retorna o próprio valor do nonce.

- Este valor você pode colocar em um URL como

action = 'http: //example.com/wp-admin/post.php? post = 123 & action = trash & _wpnonce ='. $ nonce;

- Verificando um nonce que é passado no URL

 wp_verify_nonce ($ _REQUEST ['_ wpnonce'], 'minha-ação_trash');

Relacionado: Como enviar seu plug-in para o diretório de plug-ins do WordPress?

-> Limpe, escape e valide suas chamadas POST

Sanitize: limpeza de entrada do usuário
Nunca se deve ter um dado bruto inserido no banco de dados, nem mesmo por uma função de atualização ou com uma chamada prepare ().

Limpar seus dados POST quando usado para fazer chamadas de ação ou redirecionamentos de URL diminuirá a possibilidade de vulnerabilidades XSS.

sanitize_text_field ($ _ POST ['post_name']);
- Os dados podem ser higienizados usando a função acima.
- Nos bastidores, a função faz as coisas abaixo mencionadas:
Verifica UTF-8 inválido
Converte <caracteres únicos em entidade
Retira todas as tags
Remova quebras de linha, tabulações e espaço em branco extra
Tira octetos
- sanitize _ * () classe de funções auxiliares
https://developer.wordpress.org/plugins/security/securing-input/

Validar: Verificando a entrada do usuário
Além da higienização, você deve validar todas as suas chamadas. Se uma chamada $ _POST deve ser apenas um número, certifique-se de que é um int () antes de passá-lo por qualquer coisa. Sempre que você estiver adicionando dados ao banco de dados, eles devem ser os dados corretos.

 intval ($ _POST ['post']);
--- se $ _POST ['post']

tem um valor numérico, ele retornará verdadeiro. Se não for, será falso.

Escape: Protegendo a Saída
O escape é pegar os dados que você já possui e protegê-los antes de renderizá-los para o usuário final.

O escape / conversão na saída apenas remove qualquer ambigüidade e aumenta a clareza.

 <h4> <? php echo esc_html ($ title); ?> </h4>
--- esc_html ()

deve ser usado às vezes quando o elemento HTML inclui uma seção de dados cuja saída estamos obtendo.

 esc_html (string $ text)

Escapando para blocos de HTML.

 esc_html_e (string $ text)

Exibe o texto traduzido que foi escapado para uso seguro na saída HTML.

 esc_html__ (string $ text)

Recupere a tradução de $ text e faça o escape para uso seguro na saída HTML.

 <img alt = "" src = "<? php echo esc_url ($ picture_url);?>
--- esc_url ()

deve ser usado em cada URL, incluindo aqueles nos atributos 'src' e 'href' de um elemento HTML.

 <? php echo esc_js ($ valor); ?>
--- esc_js ()

destina-se a Javascript embutido.

 <ul class = "<? php echo esc_attr ($ stored_class);?>">
--- esc_attr ()

pode ser usado em tudo o mais que é impresso em um atributo do elemento HTML.

Observação :-
Verifique o link abaixo para entender onde estão as pastas e a melhor forma de chamá-las
https://codex.wordpress.org/Determining_Plugin_and_Content_Directories

Se possível, salve os dados nas tabelas wp_options.

O objetivo conclusivo de tudo isso é garantir que dados inválidos e inseguros nunca sejam processados ​​ou exibidos. Limpe, verifique, fuja de tudo. Além disso, nunca acredite que os usuários sempre terão dados lógicos de entrada.

Relacionado: Como personalizar a página de login do WordPress