Portuguese (Português) translation by Erick Patrick (you can also view the original English article)
No artigo anterior, exploramos os meios que podemos usar temas filhos para criar sites usando sua framework. Nesse tutorial, veremos as várias ocasiões em que você, talvez, queira criar plugins.
Decidindo Quando Criar Um Plugin
Às vezes, pode ser difícil decidir se se deve usar um plugin ou o arquivo functions.php
do seu tema filho quando se quer adicionar funcionalidade a um site usando sua framework.
Ao tentar decidir o que fazer, sempre me pergunto algumas coisas, como documentado nesse infográfico:

Isso ajudará você a decidir se deve usar o arquivo de funções do tema filho ou pai, um plugin ou seu tema filho inicial.
Se a funcionalidade requiser a adição de muito código e é útil para outras pessoas, ou será usados em outros sites que você criará, mesmo que não em todos, criar um plugin, geralmente, é uma boa ideia.
Criando Seus Plugins
Se você decidiu criar um plugin, então você precisa lançar mão dos ganchos que você adicionou à sua framework para torná-los ainda mais poderosos. Por exemplo:
- Se seu plugin adiciona uma funcionalidade de rastro migalha de pão (breadcumbs), você pode anexá-lo ao gancho de ação
wptp_above_content
para mostrar o rastro migalha de pão acima do conteúdo de cada página. - Se seu plugin criar um campo de busca mais poderoso ou relevante, você pode adicioná-lo aos ganchos de ação
wptp_in_header
ouwptp_sidebar
. - Um plugin que cria uma caixa de ação (semelhante à função do tutorial passado sobre temas filhos) poderia ser anexado aos ganchos
wptp_sidebar
ouwptp_after_content
.
E a lista continua!
Obviamente, também existirá plugins que não usarão os ganchos da sua framework, mas, ao invés disso, ativará ganchos do core do WordPress. Porém, ter seus próprios ganchos dão opções extras.
Exemplo de Plugin de Navegação
Um exemplo é o plugin de navegação que criei para usar com minha própria framework. Ele só é ativado em Páginas e, primeiramente, checa onde a página atual está na hierarquia. Se a Página tem filhos ou Páginas pais, ele mostra a Página raiz da hierarquia juntamente de uma lista com suas páginas filhas, dando-lhe uma navegação local.
Usei esse plugin em sites de clientes e o anexei ao gancho before_content
ou ao gancho da sidebar
, algumas vezes em ambos, com tags condicionais extras.
O plugin usa duas funções: a primeira, wptp_check_for_page_tree()
, localiza onde a página fica na árvore de páginas:
function wptp_check_for_page_tree() { // primeiro, verifica se estamos em uma página if( is_page() ) { global $post; // depois, checa se a página tem pais if ( $post->post_parent ) { // busca uma lista dos ancestrais $parents = array_reverse( get_post_ancestors( $post->ID ) ); // pega o ancestral raiz return $parents[0]; } // retorna o id - esse será o ancestral raiz, caso haja algum, ou a // página atual, caso não exista return $post->ID; } }
A outra função, wptp_list_subpages()
, verifica se estamos em uma página que não a página inicial, e executa a função wptp_check_for_page_tree()
. Baseado no resultado dessa função, mostra a lista de página:
function wptp_list_subpages() { // não executa na página principal do blog if ( is_page() && ! is_home() ) { // executa a função wptp_check_for_page_tree para buscar a página raiz $ancestor = wptp_check_for_page_tree(); // configura os argumentos para as páginas filhas do ancestral $args = array( 'child_of' => $ancestor, 'depth' => '-1', 'title_li' => '', ); // configura o valor de get_pages para verificar se está vazio $list_pages = get_pages( $args ); // verifica se $list_pages tem valores if ( $list_pages ) { // abre uma lista com o ancestral no topo ?> <ul class="page-tree"> <?php // lista a página ancestral ?> <li class="ancestor"> <a href="<?php echo get_permalink( $ancestor ); ?>"><?php echo get_the_title( $ancestor ); ?></a> </li> <?php // use a função wp_list_pages para listar as páginas do acestral // ou da página atual wp_list_pages( $args ); // fecha a lista da árvore de páginas ?> </ul> <?php } } }
Tendo instalado e ativado o plugin, você terá de ativá-lo no seu tema filho, através da adição do seguinte trecho de código ao arquivo functions.php
:
add_action( 'wptp_sidebar', 'wptp_list_subpages' );
Claro, você poderia usar um gancho de ação diferente se quisesse mostrar a lista em outro lugar.
Conclusão
Plugins são outra parte do ecossistema que você cria como parte da sua framework. Você pode criar plugins que são projetados, especificamente, para serem ativados a partir dos ganchos que você adicionou à sua framework, como mostrei mais acima.
Contudo, é interessante passar um tempo verificando se é, realmente, necessário criar um plugin: se estiver em dúvida, dê uma olhada no infográfico desse artigo. Ele ajudará você a se decidir.
Seja o primeiro a saber sobre novas traduções–siga @tutsplus_pt no Twitter!
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post