WordPress

Inscreva-se em nosso canal no Youtube Daviwp

Como criar um plugin para WordPress

20/04/2011 WordPress (0) comentário

O que é um plugin WordPress?

Um plugin WordPress é um programa, um conjunto de uma ou várias funções, escrito em PHP e que adiciona recursos ou serviços específicos ao WordPress através de sua API. Logo melhoramos funcionalidades, estendemos a capacidade do WordPress ao limite da nossa imaginação através de pequenas aplicações ou complexos sistemas.

Estrutura de um plugin WordPress

Nome de plugins

O nome do plugin a ser criado precisa ser único e descritivo. É aconselhável consultar o diretório de plugins WordPress para verificar se o nome escolhido realmente é único; outra opção é fazer uma busca no Google utilizando como termo da pesquisa o nome desejado.

Os nomes de plugins, em sua maioria, descrevem sua utilidade. Ou seja, utilize no nome do plugin algo que o descreva, que diga o que ele faz. O nome do plugin pode conter várias palavras. Por exemplo, “Desenvolvimento de Plugins WordPress” é um nome válido, único e descritivo para um plugin.

Arquivos de plugin

Uma vez escolhido o nome do plugin, podemos nomear os arquivos relacionados. No exemplo acima, o nome do plugin foi “Desenvolvimento de Plugins WordPress”. Logo, o nome do arquivo pode ser “desenvolvimento-de-plugins-wordpress.php”.

Um plugin WordPress precisa ter no mínimo um arquivo PHP, que deverá ser nomeado assim como o nome dos plugins. Ou seja, com um nome único. Todos plugins são armazenados num mesmo diretório; com nomes únicos eles não conflitam e não se sobrescrevem.

Seu plugin pode conter diversos arquivos JavaScript, CSS, PHP, pastas, imagens, entre outros. Se este for o seu caso, crie uma pasta com um nome único e armazene todos os arquivos dentro dela. Por exemplo, desenvolvimento-de-plugins-wordpress/desenvolvimento-de-plugins-wordpress.php.

Todos os plugins WordPress são armazenados sob o diretório /wp-content/plugins/. Veja um exemplo:

API de plugin do WordPress

Até a versão 1.2 do WordPress era necessário editar seus códigos fonte a fim de realizar alguma modificação; tal modificação era conhecida como “hacks”. Dessa versão em diante é possível acrescentar funcionalidades e alterar comportamentos padrão sem editar uma linha do CORE do WordPress.

A API de plugins do WordPress é conhecida como “Hooks”; ganchos em tradução livre. Além de serem conhecidas, também, como “Filters” e “Actions”, Filtros e Ações respectivamente. Através desses ganchos, o WordPress permite que seu plugin execute funções em determinados momentos e coloca seu plugin literalmente em ação.

Nota:

Uma lista, não oficial, com todas “Actions” e “Filters” do WordPress está disponível em Adam Brown’s WP Hooks Database. As listas oficionais para as Actions e Filters são respectivamente https://codex.wordpress.org/Plugin_API/Action_Reference e https://codex.wordpress.org/Plugin_API/Filter_Reference

Como dito anteriormente, há dois tipos de “hooks” (ganchos), vamos conhecê-los:

Actions (Ações)

Seu plugin pode executar uma ou várias funções em momentos específicos em que o WordPress executa determinados códigos ou quando algum evento ocorre.

As Actions permitem que você altere o funcionamento do WordPress ou responda a certos eventos sem editar o código fonte do sistema.

Imagine a cena: você edita o código padrão do WordPress. Certamente você irá atualizá-lo quando lançarem novas versões. Logo, sua modificação foi sobrescrita, perdida. Com os plugins isso não ocorre e é mais elegante.

Um exemplo claro de uso das Actions é postar um Tweet quando um post for publicado. Isto é, criamos uma função e vinculamos ela ao evento “publicar post”. Respondemos a um evento (publicar post) do WordPress com uma função com determinado objetivo (postar um tweet).

Filters (filtros)

Textos e imagens, por exemplo, são constantemente adicionados ao banco de dados ou enviados para a tela do navegador de internet. Seu plugin pode executar uma ou várias funções para modificar esses conteúdos.

Suas funções receberão dados sem modificações ou não, dependendo se outro plugin já tiver filtrado tais dados, e retornará os dados com as modificações desejadas. Há dois pontos a serem considerados: em alguns casos, sua função poderá retornar “null” (vazio) indicando que o dado foi excluído ou desconsiderado. Outro ponto é retornar o dado bruto caso sua função não o modifique para que outro plugin o receba e faça o que tiver de ser feito.

“Actions” (Ações)

Falamos anteriormente que através das Actions podemos responder um evento do WordPress executando uma função ou então executá-la em determinados pontos em que os códigos do WordPress são executados.

Veremos agora como funciona esse mecanismo, isto é, como registrar uma função em nosso plugin para esse propósito. Os passos são simples:

  1. No arquivo do plugin crie uma função que será executada junto a algum evento do WordPress;
  2. Registre sua função em algum Hook do tipo Actions utilizando a função add_action();
  3. Ative o plugin.

Observe um exemplo prático.

Arquivo:

nome-do-arquivo-do-plugin-actions.php

Armazenado em:

/wp-content/plugins/

<?php
/*
Plugin Name: Nome do plugin
Plugin URI: https://...
Description: O que plugin faz.
 
Author: Leandro Vieira Pinho
Version: 1.0
Author URI: https://leandrovieira.com/
*/
 
function imasters_pro_url_after_login()
{
    global $redirect_to;
    if ( !isset( $_GET['redirect_to'] ) )
        $redirect_to = 'https://pro.imasters.com.br/treinamentos/';
}
 
add_action( 'login_form', 'imasters_pro_url_after_login' );
?>

O arquivo acima é um plugin WordPress. Sim, com poucas linhas e super simples. É muito fácil mesmo.

No exemplo acima criamos um plugin para responder um evento do WordPress, neste caso, o momento em que o formulário de login é manipulado. A intenção é definir um valor para a variável $redirect_to, caso não exista o parâmetro de URL redirect_to. Essa variável armazena uma URL utilizada para redirecionar o usuário após sua autenticação.

A função add_action(), utilizada para registrar uma função aos hooks do WordPress, aceita quatro parâmetros sendo dois requeridos e dois opcionais. Veja:

add_action ( 'nome_gancho', 'nome_funcao', [prioridade], [parâmetros aceitos] );

nome_gancho

O nome do gancho, do tipo Action, disponibilizado pelo WordPress que associa o evento desejado à sua função.

nome_funcao

Nome da função que será executada em associação ao nome do gancho informado. Essa função pode ser padrão do PHP, nativa do WordPress ou criada por você mesmo. Em nosso exemplo acima, criamos uma função chamada imasters_pro_url_after_login.

prioridade

Esse parâmetro é opcional. Define a ordem de prioridade em que a função deve ser executada. Esse parâmetro deve ser um valor inteiro (um número); o padrão é 10. Funções com o mesmo valor de prioridade serão executadas na ordem que foram adicionadas à Action.

parâmetros aceitos

Esse parâmetro é opcional. Define quantos parâmetros sua função aceitará. Esse parâmetro deve ser um valor inteiro (um número); o padrão é 1. Esse parâmetro é utilizado junto a alguns ganchos uma vez que eles passam mais de um parâmetro.

Como percebemos neste artigo, criar um plugin para WordPress é simples e muito fácil a partir do momento em que você conhece a estrutura da API do WordPress, a forma como ele lida com os plugins e algumas outras particularidades. No treinamento Desenvolvimento de Plugins e Temas para WordPress vamos conhecer toda lógica, melhores práticas e criaremos plugins a partir do zero.

Criador.

Leandro Vieira

daviwp

Meu nome é Davi Alves desenvolvedor web e WordPress developer, residente de Belo Horizonte, sou um dos organizadores do WordCamp evento oficial do WordPress em BH e co-fundador do Belo Horizonte WordPress Group juntamente com o fundador Mateus Neves, sou articulista de alguns sites, e fundador do daviwp.com, aqui compartilho conhecimentos para toda galera aficionada em WordPress.