Como fazer um plugin para WordPress? – Parte 1

Bom pela primeira vez aqui no Webord.net, eu decidi fazer uma pequena série de artigos. Achei que seria muito interessante começarmos com um assunto bem legal do WordPress. A comunidade que o cerca.

Então resolvi escrever sobre os plugins, que assim como o iPhone, é o que é por causa da força que sua comunidade de desenvolvedores lhe transfigura através dos Aplicativos, o WordPress, é o gerenciador de conteúdo [CMS] mais popular do mundo, contando com, até o momento, com mais de 9000 plugins desenvolvidos e mais de 80 MILHÔES, de downloads.

Contudo, encontra-se muito pouco sobre como criar plugins em português. Ao menos foi essa sensação que tive quando comecei a desenvolver um plugin. Sim só tenho um plugin desenvolvido e lançado no WordPress.org, mas já fiz plugins para sistemas específicos de trabalhos que fiz.

Resolvi dedicar um pouco mais do meu tempo para que o Webord.net se torne algo mais profissional, e comecei a ler bastante sobre o assunto em artigos em inglês para criar um “tutorial” de como fazer o seu plugin, boas práticas de desenvolvimento e como publicar no repositório oficial.

Gostaria de antes de mais nada pedir a vocês, qualquer tipo de dúvida, por mais estranha que ela possa parecer a você, pergunte pois se eu tiver o conhecimento, vou repassá-lo.

Boas práticas ao criar um plugin, e como fazer?

Vamos assumir que estamos criando um plugin que irá enviar o link de um artigo publicado para vários encurtadores de URLs e depois mostrar estes links em uma lista, para que os usuários possam tweetar seu artigo.

Agora vamos dar um nome para esse Plugin e logo poderemos criar um arquivo com este nome, separados por hífens [-].

Por exemplo, vou chamar o plugin de “ShortThem Up“, então iremos criar um arquivo com este nome:

shortthem-up.php

Antes de qualquer código, iremos colocar neste arquivo algumas informações referentes ao nosso plugin:

/*
Plugin Name: ShortThem Up
Plugin URI: http://webord.net/como-fazer-um-plugin-para-wordpress-parte-1
Description: This plugin, take the Post URL, and submit it to a bunch of <em>bit.ly</em> like sites. And get all the ShortURLs and set them up on a list.
Version: 0.1
Author: Gustavo S. Bordoni
Author URI: http://webord.net/
*/

Bom primeiramente eu coloquei qual é o nome do plugin, e logo abaixo disse qual é o Link que leva a uma página dedicada para informações sobre o mesmo.

Abaixo eu fiz uma descrição do que será feito no nosso plugin, a idéia de fazer uma descrição do nosso plugin, mas essa não será a que irá aparecer no repositório do WordPress.org, mas sim a que irá aparecer quando o usuário tiver o arquivo do plugin dentro da pasta /wp-content/plugins.

Na descrição, como vocês podem ver o texto, deve ser em inglês, o porque disso veremos com mais calma quando formos fazer a submissão deste para o repositório do WordPress.

Bom abaixo você coloca, a versão, e é sempre legal não usar texto neste campo, pois pode deixar confusa a organização das versões do seu Plugin, depois basta colocar algumas informações sobre o autor do plugin, e pronto. Já temos um arquivo compatível para ser um Plugin do WordPress.

Readme.txt, como organizá-lo!

Bom essa é uma das partes mais importantes para que o seu plugin tenha uma primeira boa impressão sobre quem vai usar. Nesta parte iremos organizar a página do plugin no repositório de WordPress.org.

Existe um padrão para que este arquivo possa ser escrito e interpretado da forma correta pelo servidor de plugins atual. Abaixo segue como dever ser feito:

=== Plugin Name ===
Contributors: webord
Plugin Name: ShortThem Up
Plugin URI: http://webord.net/
Tags: shorturl, post, tinyurl, posts, users, twitter, links, bit.ly, migre.me,is.gd,wp.me
Author URI: http://webord.net
Author: Gustavo S. Bordoni
Donate link: http://webord.net.
Requires at least: 2.5
Tested up to: 3.0
Stable tag: trunk
Version: 0.1

Aqui você deve escrever uma descrição para o seu plugin, não escreva mais do que
150 caracteres.

== Description ==

	Aqui poderemos escrever quanto for necessário para descrever o plugin. Sem
limites, e você poderá usar alguns códigos para que este
tenha alguma formatação.
	Bom lembre-se, que aqui você não pode usar qualquer tipo de acento, então será
necessário que você transforme os acentos em o código para que ele apareça.
Veremos isso mais a frente.

	Para que o plugin seja compatível, se esta sessão não existir será usada a descrição
curta.

Algumas notas sobre as informações acima:

*   "Contributors" é uma lista separada por vírgulas dos usuários do
wordpress.org/wp-plugins.org que ajudaram no desenvolvimento do plugin
*   "Tags" é uma lista separada por vírgulas dos assuntos que envolvem o nosso plugin
*   "Requires at least" é a versão mais nova do WordPress requerida para rodar o plugin,
 usem 2.5 até testarem em versões anteriores.
*   "Tested up to" a *última versão do WordPress que este plugin funciona*. Nota para
que é só que eles não foram testados, não que não funcionam.
*   "Stable tag" indica qual a versão do plugin que deve servir como a atual, caso
você só lance o plugin quando ele estiver estável, deve usar `trunk` ou `/trunk/` que
indica a pasta onde se localiza a versão atual

	É importante resaltar que o arquivo `readme.txt`, que será usado será sempre o
da pasta `/trunk/` então, se nele diz que a versão que deve ser usada é a `0.1`
então quando for feito o download pelo WordPress.org, será feito dos arquivos dentro
da pasta `/tags/0.1/` e o arquivo `readme.txt` dentro desta pasta que será usado
para passar as informações do plugin. Contudo, se você desenvolve direto no `trunk`,
você pode atualizar o arquivo `readme.txt` de lá, para que seja apontado para a
tag estável, e não para a atual. Caso não queira que pessoas façam o download de
arquivos que não estão prontos.

	Se não for dado nenhuma tag estável para o sistema, ele irá deixar o `trunk` como
a versão estável, e se isso está correto,deixe apontado para que não haja qualquer
tipo de problema.

== Installation ==

Nesta sessão é interessante, manter algumas informações de como instalar o plugin, por
mais fácil que o processo seja.

1. Suba a pasta `shortthem-up` para o diretório `/wp-content/plugins/`
1. Ative o plugin através do menu na administração no WordPress
1. Coloque o seguinte código na parte onde deve aparecer a lista `<?php do_action('aparece_lista'); ?>`

== Frequently Asked Questions ==

= É interessante manter um FAQ? =

Sim pois muitos usuários podem ter suas dúvidas respondidas, sem ter que te perguntar.

= Devo colocar tudo que escrevi em Inglês e em Português? =

Sim, deve. Pois lembre-se, que um plugin para fazer algum sucesso deve atingir ao
máximo da comunidade possível. 

== Screenshots ==

1. Este pequena descrição corresponde a primeira imagem.(png|jpg|jpeg|gif).
Lembre-se que as screenshots são retiradas da pasta da tag estável, que
nosso caso é:, `/trunk/screenshot-1.png` (ou jpg, jpeg, gif)
2. Esta é a da segunda imagem.

== Changelog ==

= 1.0 =
* Modificações desde a versão anterior
* Outra Modificação.

= 0.5 =
* A lista de versões deve ser da mais recente no top e a mais velha no final.
* Sempre que atualizar o plugin, tenha certeza de anotar qual foram as mudanças,
pois depois de algumas versões, isso será um trabalho e tanto!

== Upgrade Notice ==

= 1.0 =
Algumas informações do porque os usuário do seu plugin deve usar!

= 0.5 =
Essa versão contém atualizações de segurança para seu plugin, atualize!

== Arbitrary section ==

Dependendo do quão complicado é o seu plugin você pode criar sessões com mais
explicações. Algumas delas que não encaixam nas informações de *description* e
*instalation*. Essas explicações seguem os padrões que veremos abaixo.

== Um pouco de como codificar o Readme.txt ==

Lista numerada:

1. Uma função
1. Outra função
1. Algo mais sobre o plugin

Lista sem números:

* Algo
* Mais alguma coisa
* Uma terceira coisa

Aqui segue um link para o [WordPress](http://wordpress.org/ "O melhor CMS!") e
uma para [a documentação do Plugin][documentacao].
Titulos são opcionais, claro.

[documentacao]: http://webord.net/
            "Leia o artigo para entender mais sobre plugins"

Este tipo de `código` irá usar o acento grave como marcador de um código HTML,
e asterístico para *itálico* e para blocos sinal de maior:
> Dobre os asterísticos para **negrito**.

`<?php codigo(); // vai com acento grave! ?>`

A e é claro, você sempre poderá usar código HTML, como `<br />`.

Caso deseje fazer o download do arquivo readme.txt para poder ler com a devida atenção.

Lembrando que vocês podem sempre, dar uma olhada em como funciona, o código que usamos no readme.txt, chama-se Markdown.

Bom galera, acho que por hoje já tivemos bastante informações, vou escrever o segundo artigo desta série quanto antes. Contudo, não tenho muito tempo sobrando, então fiquem ligados no meu Twitter @webord para quando quando sair o próximo.

, , ,

Comentários (2)

  1. Eduardo Borges - 15 anos - Cuiabá/MT

    on 25/05/2010 at 19:45 said:

    Salve Gustavo, conheci o Webord.net pelo guanabara.info e parece que depois do guanabara.info foi o meu melhor achado hehe.

    Decidi só Deus sabe como que estudaria programação e ando lendo algumas coisinhas aqui e ali, fazendo alguns códigos simples, mas depois de conhecer um pouco o wordpress achei que fosse uma boa ideia aprender PHP por ele, será que estou no caminho certo, ou tenho que ter algum conhecimento antes de embarcar neste CMS?

    Sua difícil busca por conteúdo para criar os plugins para wordpress só prova que podemos fazer o que quisermos, basta querer, hehe.

    Mas então é isso aí. Abração do seu mais novo leitor e até mais.

    • Olá Eduardo,

      Minha dica é a seguinte, começar entendendo um sobre HTML,CSS depois começar a mexer com PHP e WordPress, mas não tem problema nenhum.

      Basicamente comece a mexer em temas de WordPress já prontos, e não tenha medo de errar e perguntar, qualquer dúvida deixa um comentário que eu respondo.

Deixar uma Resposta

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>