Nunca gostei da ideia de utilizar códigos de terceiros em meus projetos, até eu conhecer melhor o WordPress. Confesso que no começo relutei, mas agora utilizo ele em todos os meus projetos, desde o mais simples até os mais complexos.

Porque utilizo o WordPress?

Eu poderia redigir um texto somente mostrando as vantagens de utilizar o WordPress, contudo, vou ser direto ao ponto: Utilizo o WordPress porque inicio meus projetos com uma arquitetura de website, banco de dados e gerenciador de conteúdo prontos e facilmente personalizados. Em algumas horas coloco o layout do meu cliente em ativação, subo o conteúdo inicial e em mais 30 minutinhos ativo todos os plugins necessários para gerenciamento de SEO, Backup, Segurança, Pings e Trackbacks, e indexo ele aos principais mecanismos de busca da internet.

Nos meus antigos projetos (quando não utilizava o WordPress), criar um portal de conteúdo era trabalho para mais de um mês. Fora o tempo de desenvolvimento que diminuí drasticamente, não ha mais a necessidade de treinar o cliente, pois o backend do WordPress é muito intuitivo, sugestivo e objetivo.

Plugins

Uma das formas de personalizar o WordPress é utilizando Plugins. Os plugins são compostos por uma ou mais funções escritas em PHP, onde elas adicionam ou estendem os recursos originais do sistema. Neste post, iremos criar um plugin simples que adicionará o texto “Hello World!” na exibição do conteúdo dos posts.

O WordPress disponibiliza um sistema de hooks (ganchos) onde podemos estender ou inserir uma nova função sem precisar alterar o CORE do WordPress. Há 2 tipos de hooks: Actions e Filters.

Actions

Actions são ganchos executados em momentos específicos durante a execução da página ou quando algum evento acontece. Um exemplo claro de uso das Actions é postar uma Tweet quando um post for publicado. Isto é, criamos uma função e vinculamos ela ao evento “publicar post”.

Filters

Filters são ganchos executados para modificar textos ou outro tipo de dados antes de inserir no banco de dados ou exibir no navegador. Neste exemplo iremos utilizar este tipo de gancho, onde antes de exibir o conteúdo do post iremos acrescentar o texto “Hello World!”.

Lista oficial do WordPress para referencia:
Actions: http://codex.wordpress.org/Plugin_API/Action_Reference
Filters: http://codex.wordpress.org/Plugin_API/Filter_Reference

Estrutura de um Plugin

Nome

O nome do plugin deve ser único e objetivo. Você pode consultar o diretório de plugins WordPress para verificar se o nome escolhido é realmente único.

Arquivos

Todos os plugins estão localizados na pasta /wp-content/plugins/. Cada plugin deve conter pelo menos um arquivo .php. Neste exemplo, nosso plugin chamará “Hello World!”, então o nome do arquivo ficará hello-world.php.

Seu plugin pode conter diversos arquivos JavaScript, CSS, PHP, imagens, entre outros. Neste exemplo não usaremos nada alem de um arquivo .php. Por outro lado, você pode criar uma pasta recipiente de todos os arquivos para seu plugin, por exemplo: /wp-content/plugins/hello-world/hello-world.php

Criando o Plugin

A primeira coisa a se fazer é criar o diretório /wp-content/plugins/hello-world/ que será recipiente de todos os arquivos respondidos pelo nosso plugin. Agora, vamos criar o arquivo hello-world.php dentro deste diretório e adicionar o seguinte conteúdo:

Isto será suficiente para o WordPress ja identificar nosso plugin e exibi-lo no dashboard:

Dashboard para ativação de plugin no WordPress

Agora vamos criar a função que adicionará o texto “Hello World!” ao conteúdo do post e registra-la ao hooks (ganchos) do WordPress. Edite o arquivo hello-world.php adicionando o seguinte código:

Ative o plugin e verá que o texto “Hello World!” está sendo adicionado ao conteúdo quando a função the_content() do WordPress é chamada. Claro que este plugin é muito simples e sem nenhuma utilidade, mas você já tem uma base para explorar a lista de referencia para os hooks e personalizar o WordPress da maneira que desejar.

Opção na Área Administrativa

Neste exemplo, acabamos de ver como personalizar o frontend, contudo, poderíamos incrementar nosso plugin e criar uma opção na sessão de posts e páginas no backend (área administrativa) para marcarmos se desejamos ou não adicionar o texto “Hello World!”.

Para mostrar essa opção vamos precisar criar duas funções em nosso arquivo hello-world.php e adicionar uma em um hook action:

Isto será suficiente para mostrar o seguinte quadro na tela de edição de páginas e posts:

Dashboard WordPress - Opção do plugin

Entretanto, quando clicamos em “Mostrar mensagem” nada acontece. Precisamos criar mais um hook para gravar esta informação no banco de dados.

Gravando a opção

Poderíamos criar uma tabela no banco de dados do WordPress para gravar a opção “Mostrar mensagem” do nosso plugin. Entretanto, não faremos nada complicado. Vamos utilizar uma tabela já existente “postmeta” utilizada pelo WordPress para gravar informações meta (adicional) sobre posts e páginas.

Para isso, o WordPress disponibiliza quatro funções para facilitar nosso trabalho:

Criaremos então uma função vinculada a action save_post() para salvar a opção do nosso plugin, quando o usuário gravar o post ou página.

Agora precisamos alterar a função hello_world_content_filter() que acrescenta o texto “Hello World!” no frontend, para que ela verificar antes antes no banco de dados se ela deve acrescentar o texto ao conteúdo do post ou página.

Precisamos também alterar a função hello_world_meta_box() que exibe o quadro de opção na sessão de post e páginas, para que ela marque ou desmarca a opção “Mostrar mensagem” se ela estiver ou não gravada no banco de dados.

Pronto! Criamos nosso plugin, adicionamos um quadro de opções na área administrativa e gravamos as informações do plugin no banco de dados. Tudo isso em 10 minutos ou menos. Eu sei, o WordPress é fantástico mesmo! ^^’

Faça o download deste exemplo: plugin-hello-world.zip

No próximo artigo, faremos um plugin mais complexo, explorando melhor as funcionalidades do WordPress.

Quer copiar esse post no seu site? Você pode!

Segundo a licença da Creative Commons 3.0 (CC BY SA 3.0) você pode copiar e distribuir esse conteúdo desde que faça menção ao autor original, para isso é só copiar esse código no final do artigo quando for publicá-lo em seu site:

<p>Artigo originalmente publicado em <em>25 de junho de 2011</em> por <strong><a href="http://pedroelsner.com/" title="Pedro Elsner, Profissional de TI - São Paulo">Pedro Elsner</a></strong>: <a href="http://pedroelsner.com/2011/06/hello-world-criando-um-plugin-para-wordpress/" title="Hello World! – Criando um plugin para WordPress">Hello World! – Criando um plugin para WordPress</a></p>
A não menção ao autor original da obra implicará em cópia e/ou distribuição ilegal de propriedade intelectual, o que é crime segundo a Lei n.º 9.610.
  • Ale

    Simples, rápido e direto. Muito bom!!!

  • Fernando Barros

    Show!!! Estava precisando de uma introdução assim sobre o assunto. Parabéns.

  • Josemar Lopes

    Muito Muito bom, e bem explicado.