Como construir seu próprio plugin WordPress

Publicados: 2016-07-13

Pode parecer um grande empreendimento criar um plugin WordPress. Em alguns casos isso é verdade – alguns plugins podem ser incrivelmente complexos. Mas, dependendo da funcionalidade que você deseja adicionar, muitas são bastante simples de construir. A criação de um plugin pode ser feita rapidamente com algum entendimento básico de como tudo funciona.

Para onde vão os plugins?

Estrutura de pastas do WordPress

Antes do início do desenvolvimento, é bom saber onde os plugins pertencem. Vamos dar uma olhada na estrutura de pastas do WordPress nos diretórios básicos de aplicativos. Dentro da pasta wp-content , você verá um diretório de plugins. É aqui que todos os seus plugins individuais ficarão.

Os plug-ins nesta pasta podem ser arquivos únicos ou em subdiretórios. Plugins menores normalmente requerem apenas um único arquivo .php. Plugins complexos podem ter vários tipos de arquivos (HTML, CSS e JavaScript são todas possibilidades). Criar um subdiretório é útil para hospedar os vários arquivos junto com as funções .php do plugin.

how-to-build-wordpress-plugin-plugin-file-path

Ações e filtros

Antes de começar a construção do plugin, é bom saber algumas noções básicas para você começar. Quando você começa a codificar seus próprios plugins, um bom lugar para começar é aprender como as ações e os filtros funcionam. Conhecer o básico será útil e, à medida que você tiver mais dúvidas, o WordPress Codex é um ótimo recurso.

Antes do desenvolvimento do plugin

As metainformações são incrivelmente importantes e também são as informações que informam os detalhes do WordPress sobre o plug-in. Os plug-ins têm opções para serem instalados, excluídos, ativados e desativados. Tecnicamente, tudo o que você precisa é o nome do plugin para o WordPress estabelecer seu arquivo como um plugin. No entanto, é uma boa prática fornecer as outras informações, pois elas serão úteis para você e seus usuários.

<?php

/**

* Plugin Name: Example Plugin

* Plugin URI: http://mysite.com/

* Description: A brief description about your plugin.

* Version: 1.0 (or whatever current version your plugin is on)

* Author: Plugin Author's Name

* Author URI: Author's website

* License: A "Slug" license name e.g. GPL12

*/

Um plug-in muito simples

Começar pequeno é uma boa maneira de facilitar a construção de plugins. Vamos criar um exemplo muito simples. Ações e filtros fazem as coisas acontecerem, então vamos adicionar uma linha de texto após todas as postagens para testar as coisas.

É sempre bom trabalhar em um ambiente de desenvolvimento, e isso é especialmente importante quando você experimenta plugins.

Primeiro, crie um novo arquivo e verifique se ele está no local correto. Copie e cole este código em seu arquivo de plugin principal e salve-o. Isso é colado após a meta-informação.

add_action( 'the_content', 'test_example_text' );

function test_example_text ( $content ) {
    return $content .= '<p>This is my first plugin!</p>';
}

Este é um exemplo de um gancho trabalhando duro. Ao se conectar à ação the_content , isso funciona quando o WordPress renderiza o conteúdo do post. O WordPress chama a função test_example_text que é definida abaixo da add_action call .

Vendo o plugin em ação

Você provavelmente já fez isso antes, mas quando estiver logado no administrador do WordPress, você verá a opção de plug-in à esquerda. Nosso plugin aparece e agora precisa ser ativado. Uma vez ativado, ele aparece no final do post.

listagem-plugin-plugin-como-construir-wordpress

how-to-build-wordpress-plugin-first-plugin

Um plug-in mais complexo

Portanto, este exemplo demonstra o básico de como os plugins funcionam, mas e se você quiser fazer algo um pouco mais útil? Tipos de postagem personalizados são usados ​​com bastante frequência no design de sites personalizados, então vamos começar com isso. Existem plugins existentes que você pode usar, mas criar um do zero é uma boa maneira de facilitar o desenvolvimento de plugins.

O que é o tipo de postagem personalizado no WordPress?

Páginas e posts são os tipos de conteúdo mais populares no WordPress, mas e se você quiser algo mais específico? Páginas e Posts podem ser muito gerais em algumas circunstâncias, e é por isso que um tipo de postagem personalizado se torna útil. Um bom exemplo é um tipo de portfólio de postagem personalizado. A ideia é criar uma postagem regular com um valor de tipo de postagem diferente anexado a ela.

Como criar um site de portfólio no WordPress

Ter uma página de portfólio em um site pode ser usado para muitas coisas. Por definição, é algo usado para guardar materiais como papéis, mapas, desenhos, fotos, etc. Um portfólio em termos financeiros...

Você pode chamar seus tipos de postagem personalizados como quiser. Por exemplo, se você administra um site de comida, pode criar um tipo de postagem de receita útil. Esse tipo de postagem pode ter diferentes campos personalizados com sua própria estrutura de categoria personalizada.

Criando tipos de postagem personalizados

A primeira coisa que você precisa fazer é realmente criar o tipo de postagem personalizado. Usando a mesma estrutura de arquivos acima, vamos adicionar nossa pasta e arquivo .php. Assumindo que as meta-informações foram criadas, adicionaremos nossa funcionalidade após o meta-bloco.

Vamos criar um plug-in para um tipo de postagem personalizado chamado “Receitas” para demonstrar o básico da criação de um plug-in mais complexo.

A versão básica

Se você der uma olhada no trecho abaixo, é bem simples no início. Veremos um tipo de postagem personalizado no menu à esquerda para garantir que isso funcione. O register_post_type() é usado em uma função, que se conecta à ação init . Existem dois argumentos que são o tipo de postagem personalizado e uma matriz de argumentos.

function recipe_custom_post_type() {
	register_post_type( 'recipe', array( 'public' => true, 'label' => 'Recipes' ) );
}
add_action( 'init', 'recipe_custom_post_type' );

how-to-build-wordpress-plugin-custom-post-type-01

A versão avançada

Esta versão básica do plugin realmente funcionará, no entanto, mais funcionalidades são necessárias para torná-lo realmente maravilhoso. Por exemplo, os marcadores ainda estão dizendo "Adicionar nova postagem". Queremos que isso seja mais específico para a receita; afinal, é por isso que não estamos usando apenas um post simples. As personalizações podem ser feitas usando a propriedade labels.

how-to-build-wordpress-plugin-add-new-post

Agora, vamos riscar o que acabamos de fazer e usar isso:

add_action( 'init', 'recipe_custom_post_type' );
add_filter( 'post_updated_messages', 'recipes_messages' );

function recipe_custom_post_type() {
	$labels = array(
		'name'               => 'Recipes',
		'singular_name'      => 'Recipe',
		'menu_name'          => 'Recipe',
		'name_admin_bar'     => 'Recipe',
		'add_new'            => 'Add New',
		'add_new_item'       => 'Add New Recipe',
		'new_item'           => 'New Recipe',
		'edit_item'          => 'Edit Recipe',
		'view_item'          => 'View Recipe',
		'all_items'          => 'All Recipes',
		'search_items'       => 'Search Recipes',
		'parent_item_colon'  => 'Parent Recipes:',
		'not_found'          => 'No recipes found.',
		'not_found_in_trash' => 'No recipes found in Trash.'
	);

	$args = array( 
		'public'      => true, 
		'labels'      => $labels,
		'rewrite'		=> array( 'slug' => 'recipe' ),
		'has_archive'   => true,
		'menu_position' => 20,
		'menu_icon'     => 'dashicons-carrot',
		'taxonomies'		=> array( 'post_tag', 'category' ),
		'supports'      => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields', 'comments' )
	);
    	register_post_type( 'recipe', $args );
}

function recipes_messages( $messages ) {
	$post = get_post();

	$messages['recipe'] = array(
		0  => '',
		1  => 'Recipe updated.',
		2  => 'Custom field updated.',
		3  => 'Custom field deleted.',
		4  => 'Recipe updated.',
		5  => isset( $_GET['revision'] ) ? sprintf( 'Recipe restored to revision from %s',wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
		6  => 'Recipe published.',
		7  => 'Recipe saved.',
		8  => 'Recipe submitted.',
		9  => sprintf(
			'Recipe scheduled for: <strong>%1$s</strong>.',
			date_i18n( 'M j, Y @ G:i', strtotime( $post->post_date ) )
		),
		10 => 'Recipe draft updated.'
	);

	return $messages;
}


how-to-build-wordpress-plugin-add-new-recipe

Veja como o texto no topo agora diz “Adicionar nova receita”? Conseguimos isso personalizando o “adicionar novo item” com o texto desejado.

how-to-build-wordpress-plugin-ui-elements

como-construir-wordpress-plugin-receita-posts

Há muita coisa acontecendo aqui e as coisas ficam bem detalhadas quando se trabalha com argumentos. Uma que é visualmente óbvia é a propriedade dos supports . Aqui declaramos que um título, editor, autor, miniatura, trecho, campos personalizados e comentários sejam incluídos. Eles são mostrados na interface de usuário do administrador e também em algumas partes do front-end. A propriedade taxonomias permite atribuir taxonomias personalizadas ao tipo de postagem personalizada.

how-to-build-wordpress-plugin-ui-new

Mensagens de interação do tipo de postagem

Sempre que você salva, exclui, pesquisa, etc., você recebe uma mensagem padrão. Em nossa função recipes_messages , há uma lista dessas mensagens. Definir a matriz para o tipo de postagem personalizado com as mensagens apropriadas garantirá que as coisas sejam lidas da maneira que você deseja para o tipo de postagem personalizado. As coisas parecem muito específicas da receita com o texto, então isso combina bem com o tipo de postagem personalizado.

how-to-build-wordpress-plugin-receita-texto

Depois de concluir seu plug-in, você pode publicá-lo no Diretório de plug-ins do WordPress para que outras pessoas também possam baixá-lo. Se este for o caso, incluir um readme.txt é útil para quem está procurando um plugin como o seu. Basicamente, esse arquivo incluirá seu nome e o que o plug-in faz, mas você também pode incluir detalhes sobre cada revisão e detalhes sobre as atualizações.

Como você pode ver, os plugins podem ser muito simples ou complexos. Criar um plugin não é tão complicado quanto parece à primeira vista e é um bom hábito ao desenvolver sites WordPress. Eles permitem uma organização fácil e a capacidade de reutilização em vários sites, tornando o desenvolvimento do WordPress mais eficiente.

como-construir-wordpress-plugin-ebook-cta