Criando um plugin para Wordpress

publicidade
Gostou? Curta e Compartilhe!
Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter

Uma coisa interessante do WordPress é a possibilidade de se acrescentarmos funcionalidades para que ele atenda a objetivos específicos do projeto em que está sendo usado. Isso pode ser feito com o uso de plugins. Hoje já existem muito plugins prontos e disponibilizados gratuitamente no repositório de plugins em wordpress.org para quase todos os fins, mas algumas vezes temos uma necessidade tão específica que precisamos criar nosso próprio plugin. Neste tutorial vou fazer um passo-a-passo para a criação de um plugin bem básico, para ajudar quem está começando a desenvolver para WordPress e precisa de um ponto de partida. Mas sempre que tiver oportunidade, atualizarei o plugin adicionando novas funcionalidades, para aprofundar o estudo.

Chamaremos o nosso plugin de “Message Widget” e ele consistirá em um Widget que exibirá citações aleatórias de alguns pensadores, para os usuários no site. Aqui exibiremos citações de pensadores, mas você poderia exibir qualquer outra coisa, de acordo com a sua necessidade. O primeiro passo é criar o arquivo principal, ele fará com que o WordPress identifique o nosso Plugin. Aqui nomearei o arquivo como message_widget.php e colocaremos em uma pasta chamada message-widget, dentro da pasta de plugins do wordpress (caminho-wordpress/wp-content/plugins).

Criado nosso arquivo, vamos inserir o seguinte código nele:

<?php
/*
Plugin Name: Message Widget 
Plugin URI: https://www.andrebrum.com.br/
Version: 1.0 
Description: Plugin to show random citations in your WordPress blog. 
Author: André Brum Sampaio
Author URI: https://www.andrebrum.com.br/
Text Domain: message-widget
Domain Path: /languages/
*/
?>

Este é código básico de um plugin, um cabeçalho com informações do plugin. Todo plugin para WordPress terá um cabeçalho como este.

Uma explicação rápida de cada item do cabeçalho do plugin.

Plugin Name: Nome do plugin
Plugin URI: Endereço  da página do plugin
Version: A versão corrente do plugin.
Description: Uma breve descrição do plugin, ela será exibida no painel de plugins.
Author: Nome do Autor do plugin.
Author URI: endereço do site do autor do plugin.
Text Domain: string usada para internacionalização do plugin.
Domain Path: Caminho para os arquivos de tradução do plugin.

Neste ponto, o plugin já estará listado no painel de controle entre os outros plugins que estiverem na pasta de plugins.

Apesar de listado entre os outros plugins, ele ainda não tem nenhuma funcionalidade, ainda precisamos criar alguns códigos. O primeiro, é o responsável pela seleção da mensagem que será exibida, ou seja, a parte específica do nosso projeto. Ela consiste em uma pequena função que sorteará uma mensagem cada vez que for chamada. Para este tutorial armazenaremos as mensagens em uma variável e usaremos uma pequena função que sorteará uma mensagem cada vez que for chamada.

<?php

function random_citation() {

# Nossa variável contendo as mensagens
$citation = array(
array('author' => 'Carlos Drummond de Andrade' , 'msg' => 'Ser feliz sem motivo é a mais autêntica forma de felicidade.'),
 array('author' => 'Carlos Drummond de Andrade' , 'msg' => 'Perder tempo em aprender coisas que não interessam, priva-nos de descobrir coisas interessantes.'),
 array('author' => 'Fernando Pessoa' , 'msg' => 'Tudo vale a pena quando a alma não é pequena.'),
 array('author' => 'Fernando Pessoa' , 'msg' => 'Há tanta suavidade em nada dizer e tudo entender...'),
 array('author' => 'John Ruskin' , 'msg' => 'Somente quando encontramos o amor, é que descobrimos o que nos faltava na vida.'),
 array('author' => 'Pitágoras' , 'msg' => 'Com organização e tempo, acha-se o segredo de fazer tudo e bem feito.'),
 array('author' => 'Santo Agostinho' , 'msg' => 'Ninguém faz bem o que faz contra a vontade, mesmo que seja bom o que faz.'),
 array('author' => 'Santo Agostinho' , 'msg' => 'A angústia de ter perdido não supera a alegria de ter um dia possuído.'),
 array('author' => 'Santo Agostinho' , 'msg' => 'Ter fé é assinar uma folha em branco e deixar que Deus nela escreva o que quiser.')
);

/* Aqui definimos um número de chave aleatória do array e em seguida retornaremos a citação correspondente a essa chave. */

$rand_key = array_rand( $citation, 1 );

return $citation[$rand_key];

} 
?>

O nosso plugin exibirá a mensagem em um widget que poderá ser alocado em qualquer parte do seu tema que suporte a inserção de widgets. Então agora que já temos as mensagens, precisamos criar do nosso widget e a área de configuração dele. Esse é o nosso próximo passo.  Para criarmos o widget usaremos uma classe fornecida pelo WordPress e que é a base para a criação de widgets.  Criaremos uma pequena classe e estendendo as funcionalidades da classe fornecida. Normalmente criaríamos nossa classe em um arquivo separado e faríamos o include dela, mas para melhor visualização colocaremos ela no mesmo arquivo.

<?php

class WidgetRandomMessage extends WP_Widget{

# No método construtor da nossa classe passaremos os argumentos 'name' e 'description' para o construtoda da calasse mãe. 

public function __construct(){
    	
$widget_arg = array('description' => __('Use this widget to display a famous citatioon','message-widget')
		);

parent::__construct( false , $name =__('Message Widgets','message-widget') ,$widget_arg );
    
}

# Método que exibe o contúdo do Widget no front-end. É o que o usuáriovai ver. 

function widget( $args, $instance ){
		
extract($args);

# Título do nosso widget
		
$title = apply_filters('widget_title', empty( $instance['title']) ? __('Message Widget','message-widget') : $instance['title']);


# Aqui atribuimos à variavel $msg os dados da mensagem que será exibida usando nossa função random_citation().
$msg = random_citation();

# html de encapsulamento do widget
echo $before_widget;

# html de encapsulamento do título
echo $before_title . $title . $after_title;


# código html do nosso widget incluindo a mensagem.
echo "<div class='ab_bible_widget'>";
echo "<div class='msg'>";
echo "<p style='color: #3699db;font-size: 20px;''>";
echo $msg['msg'];
echo "</p>";
echo "<span style='display: block;text-align: right;margin-top: 10px;font-weight: bold;'>";
echo $msg['author'];
echo "</span></div>";
echo "</div>";
	
# html de fechamento do encapsulamento do widget
echo $after_widget;
}
	
# Método para salvar os dados da instância do widget. No caso do nosso widget, o título.

function update( $new_instance, $old_instance ){

$instance = $old_instance;
$instance['title'] = stripslashes( $new_instance['title'] );

return $instance;

}


# formulário de configuração do widget. É exibino no painel de controle do WordPress na aba Aparência > Widgets.

function form( $instance ){

$instance = wp_parse_args( (array) $instance, array('title'=>__('Message Widget','message-widget')) );

$title = htmlspecialchars( $instance['title'] );

echo '<p>';
echo '<label for="' . $this->get_field_id('title') . '">';
echo __('Title:','message-widget');
echo '</label>';
echo '<input class="widefat" id="' . $this->get_field_id('title') . '" name="' . $this->get_field_name('title') . '" type="text" value="' . $title . '" />';

echo '</p>';
		
}
} 
?>

Agora precisamos fazer o registro no sistema e nosso plugin estará pronto para uso. Para isso adicionaremos uma ação que executará uma função genérica no hook  ‘widgets_init’, ou seja, quando ‘widgets_init’ ocorrer a função genérica será executada. Nela registraremos o nosso widget com a função register_widget().

<?php

/**
 * Na inicialização dos widget faremos o registro do nosso widget para que ele esteja disponível ao usuário. Para isso usaremos a função 'register_widget' que será chamada por uma função genérica no hook 'widgets_init'. Ou seja, quando o hook 'widgets_init' for executado, executará a função generica que registrará nosso widget.
 * 
 * */

add_action( 'widgets_init', function(){

#registro efetivo do nosso widget atravez da nossa classe WidgetRandomMessage.
	
register_widget('WidgetRandomMessage');

});

?>

Tudo pronto! Vamos ao painel de controle do WordPress e navegamos para Aparência > Widgets. Em seguida localizamos o nosso widget e arrastamos para a o local onde queremos que ele seja exibido.

Ao colocarmos ele na sidebar, poderemos configurar as opções. No nosso caso, é o Título que será exibido no front-end para o usuário. Se não mudarmos, aparecerá o título padrão.

Agora as mensagens já estarão sendo exibidas para os usuários do site, e são trocadas a cada atualização da página, como nos exemplos abaixo.

E assim terminamos essa primeira fase dessa série de tutoriais sobre criação de plugins para WordPress. Espero que seja útil para você e se tiver sugestões ou dúvidas, poste nos comentários.

Para acessar a segunda parte desta série clique aqui.

Comente!

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

3 comentários.

Postado por:
Internacionalizando um plugin para WordPress « André Brum em 05/02/2021. […] parte: Criando um Plugin para WordPress;2ª parte: Adicionando funcionalidades ao nosso Plugin;3ª parte: Criando uma página […]
Postado por:
Criando uma página administrativa para o nosso plugin « André Brum em 10/01/2021. […] de ver a sequência completa da criação do nosso plugins, você pode acessar a primeira parte aqui e a segunda […]
Postado por:
Adicionando Funcionalidades ao Plugin « André Brum em 11/12/2020. […] Para acessar a primeira parte desta série clique aqui. […]