Plugins e PHP no WordPress

A programação PHP (Hypertext Preprocessor) é realizada no servidor da página (diferentemente do javascript). Por razões de segurança, o WordPress não permite utilizar códigos PHP diretamente no post ou página. Porém, existem alternativas, como os plugins, estejam eles prontos ou você mesmo pode fazer um e disponibilizá-lo para a comunidade.

plugins_wp

Caso queira implementar alguma função que não venha no código original do WordPress, você poderá implementar as novas funcionalidades utilizando um plugin. Os plugins são ferramentas para estender a funcionalidade do WordPress. São incluídos diretórios em “wp-content/plugins” com o nome do plugin e os códigos e informações correspondentes, mas facilmente instalados através de interface gráfica do painel de controle do wordpress. Possui um campo de busca no repositório oficial (mas podem ser instalados diretamente), e possuem o recurso de ativar/desativar, para evitar instalar/desisnstalar o tempo todo, perdendo suas personalizações.

Caso queira que a página execute uma função utilizando PHP, não poderá ser feito diretamente no post ou página. Existem plugins que trabalham no sentido de permitir a execução do PHP, como o Allow PHP in Posts and Pages, ou também criando shortcodes, como o PHP Code for Posts and Pages. O shortcode é uma forma simples, segura e bastante “limpa” de misturar pedaços códigos PHP dentro de posts ou páginas.

Um grande problema que enfrentei tentando usar esses plugins foi o conflito com outro plugin, o SyntaxHighlighter Evolved. Responsável por postar códigos de diferentes linguagens utilizando cores e formatações próprios, é muito útil para visualizar um código postado no WordPress. Assim, para implementar as funções PHP que eu desejava (e que não tinham nenhum plugin que me satisfizesse nesse sentido), decidi fazer o meu próprio plugin.

Criando um plugin

O objetivo do meu plugin é o de imprimir a hora na qual o usuário abriu o post para leitura, no formato “UTC-3” e em Internet Time. A função time() retorna o horário atual em unix time e idate converte para outros formatos (no caso, o parâmetro B converte para Swatch Beat/Internet Time, H para horas e i para minutos). Assim, o comando em PHP (para um dos casos) é o seguinte:

Podemos também incluir HTML/CSS e deixar o resultado mais “apresentável” na página. Juntando tudo, temos:

Note que foi definido o horário para “Brazil/East” (ou seja, UTC-3). Para finalizar o código PHP do plugin, foi inserida a função “add_shortcode”, que permite incluir um simples shortcode para executar o plugin no post. Ou seja, bastará deixar no post o texto a seguir para executar o plugin (sem as barras invertidas):

Assim, o código final é o seguinte:

Para esse código poder ser chamado de plugin, deverá incluir algumas “burocracias”. No mesmo arquivo, junto com o início código, inclua um cabeçalho com as seguintes informações e licença:

Lembrando, o asterisco antecedido/precedido de barra indica os intervalos do comentário no PHP, e o código deve estar limitado por sinais de maior/menor unido de ponto de interrogação.

Crie também um arquivo de ajuda, chamado “readme.txt”, onde você deverá incluir informações divididas por setores. Criei também um arquivo com as informações de licença. Os modelos podem ser obtidos no site Como criar blog.

Publicando no repositório

Se deixar uma pasta com o nome do plugin no “wp-content/plugins”, já vai aparecer o plugin instalado com todas as informações no seu painel de controle, bastando apenas ativá-lo e utilizá-lo. Caso queira que o seu plugin faça parte do repositório oficial do wordpress, você deverá requisitar uma permissão de acesso ao repositório de plugins (página WP Repository Request wordpress.org/extend/plugins/add). Para isso, você deverá ter um cadastro no site wordpress.org. Cadastre-se (ou logue-se) e envie as informações solicitadas referentes ao seu plugin. Algum tempo depois (horas ou poucos dias) eles retornam dizendo se o plugin foi aprovado ou não e o endereço do plugin na internet.

Para trabalhar com o seu plugin no repositório, você deverá utilizar um sistema de subversion. Subversion, também conhecido por svn, é um sistema de controle de versão. Ou seja, cada alteração realizada e submetida de código será uma nova versão do seu programa. Isso permite que muitas pessoas atualizem o código, formando diferentes versões, e haja um controle melhor do que foi realizado em cada etapa.

Caso esteja usando Linux, instale o pacote “subversion”, que inclui o cliente Subversion (svn), ferramentas para criar um repositório Subversion (svnadmin) e para tornar um repositório disponível em uma rede (svnserve). Depois, crie uma pasta com o nome do seu plugin e execute o comando (1ª linha mais abaixo) para essa pasta para dar o “check out” do repositório. Copie os arquivos para a pasta “trunk” e depois as adicione no repositório usando o comando da 2ª linha. Finalmente, transmita tudo de volta para o repositório usando da última linha. Para atualizar, basta executar os mesmos comandos, exceto o de adicionar a pasta:

Cada envio de diferente versão será emitido um e-mail para você com as alterações realizadas. O procedimento apresentado está explicado também no site “How to Use Subversion” do wordpress.org, inclusive mostrando também como fazer as atualizações. Dessa forma, o plugin agora está no repositório, e o nosso exemplo também é acessível pelo seguinte endereço: http://wordpress.org/plugins/internet-time/.

Veja uma aplicação desse plugin no post sobre Formas alternativas de medir o tempo. Saiba mais sobre WordPress clicando nesse link.