Marcelo Mesquita

Apenas mais um desenvolvedor WordPress

Criando um plugin

Os plugins são funcionalidades extras que podem ser agregadas ao sistema padrão. O ideal é que os plugins funcionem sem realizar alterações na base do sistema (hacks), assim os usuários não ficam reféns dos plugins e quando surgirem atualizações do sistema base o usuário poderá realizá-las sem perigo de perder seus dados ou deixar seu site fora do ar.

No WordPress, os plugins ficam na pasta ‘wp-config/plugins/’. O WordPress lê o início de todos os arquivos nessa pasta a procura dos indicadores de plugin, que são algumas palavras-chave informadas em forma de comentário. Segue o formato básico das informações de um plugin:

<?php
/*
Plugin Name: Nome do plugin
Plugin URI: http://endereco.do.plugin/
Description: Descrição do plugin
Version: Versão do plugin, ex.: 1.0
Author: Nome do autor do plugin
Author URI: http://endereco.do.autor/
*/
?>

Todas essas informações devem estar no início do arquivo de seu plugin para que o WordPress os reconheça e os adicione ao gerenciador de plugins. Ao ativar um plugin o WordPress simplesmente adiciona o arquivo à lista de inclusões e a partir daí é que seu plugin começa a trabalhar.

Um plugin pode trabalhar de diversas formas, ele pode ser apenas uma função que precisa de uma chamada num tema para que funcione, ou filtrar alguma informação passada automaticamente pelo WP, ou salvar outros dados, ou tantas outras utilidades.

Hooks

Cada coisa a seu tempo, vamos começar com algo simples: como interagir com o WordPress sem hackea-lo (alterar seu núcleo). Usemos como exemplo o plugin ‘Hello Dolly’, que vem por padrão nas instalações do WP. Esse plugin mostra, no topo da área administrativa, uma mensagem randômica a cada navegação.

Mas como fazer para adicionar um texto na área administrativa do WordPress sem mexer no código do WordPress?
O que acontece é que em diversos pontos-chave do sistema existem ‘ganchos’ (hooks). Quando deparado com esses ganchos o WordPress interrompe seu processamento e verifica se existe alguma(s) função(ões) que usa(m) esse gancho para fazer alguma coisa. Caso exista, a(s) função(ões) é(são) executada(s) antes do WP voltar ao seu processamento normal.

Existem dois tipos de gancho: o ‘action’ que chama a função em determinado ponto; e o ‘filter’ que passa para a função um conteúdo como argumento, assim a função pode usar esse conteúdo para realizar sua tarefa.

Actions

O plugin ‘Hello Dolly’ usa ‘add_action(‘admin_footer’, ‘hello_dolly’)’, dessa formam quando o WordPress chega no gancho ‘admin_footer’, a função ‘hello_dolly’ é chamada e carrega o texto aleatório.

Filters

Diferente do ‘action’, o ‘filter’ é usado para modificar conteúdos, por exemplo, se você quer destacar seu nome no conteúdo de seus posts, adicione um filtro ‘add_filter(‘the_content’, ‘sua_funcao’)’, onde ‘sua_funcao’ varre o conteúdo e adiciona negrito as ocorrencias de seu nome. É importante que a função usada nos filtros sempre retorne o valor processado, caso contrário o conteúdo original será restaurado.

Para resumir segue um exemplo de um plugin que corrige as ocorrências de ‘wordpress’ para ‘WordPress’ no conteúdo dos posts:

<?php
  /*
  Plugin Name: Corretor WP
  Description: Corrige todas as ocorrências de 'wordpress' para 'WordPress' no conteúdo dos posts
  Version: 0.1
  Author: Marcelo Mesquita
  Author URI: http://marcelomesquita.com/
  */

  function corrige_WP($content)
  {
    $content_corrigido = str_replace('wordpress', 'WordPress', $content);

    return $content_corrigido;
  }

  add_filter('the_content', 'corrige_WP');

?>

Para saber mais sobre Hooks visite a API dos Plugin do WordPress.

5 Comments

  • responder

    George Campos

    8 anos atrás

    olá Marcelo,

    Acabei de descobrir seu site e adorei o trabalho que vem fazendo com essa documentação do wordpress. Em breve pretendo lançar diversos sites em wordpress e estou convicto de todo potencial que ele oferece.
    No momento estou começando um novo projeto e estou justamente nesse ponto, o desenvolvimento de plugins, em breve pretendo disponibilizar a todos.

    abs e parabens

  • responder

    Criando Widgets » Marcelo Mesquita

    8 anos atrás

    […] o que você aprendeu até agora sobre criar um plugin mas o que você acabou de aprender sobre criação de widget e um pouco de criatividade, já é […]

  • responder

    Carla

    8 anos atrás

    olá…. muito bom esse seu artigo… talvez vc possa me ajudar… mas não encontrei referencias de como passar os parametros para a função… como no seu exemplo em function corrige_WP($content) quem vai passar esse $content? é o retorno de the_content ? então o nome na assinatura da função nao importa?

    • responder

      Marcelo Mesquita

      8 anos atrás

      Oi Carla,
      acho que fiquei devendo uma explicação mais detalhada sobre o funcionamento desses ganchos. Mas é exatamente como você disse, no gancho add_filter, o primeiro argumento é (até onde eu sei) o retorno da função que você irá filtrar e o nome da assinatura realmente não importa.

      Quanto à passar outros argumentos, na página Filter Reference da documentação do WP você encontra uma lista de funções e argumentos que elas passam para add_filter. Não esqueça de informar a quantidade de argumentos que sua função irá processar, por exemplo, caso sejam dois argumentos: add_filter(‘bloginfo’, ‘sua_funcao’, 1, 2);

      Também é possível redefinir alguns dos filtro existentes para que aceitem novos argumentos ou ainda criar novos filtros que atendam suas necessidades, mas isso será assunto para um novo post.

  • responder

    Cultura Digital » Criando Widgets

    8 anos atrás

    […] o que você aprendeu até agora sobre criar um plugin mas o que você acabou de aprender sobre criação de widget e um pouco de criatividade, já é […]

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *