Dev (Back & Front)ARTIGO

Criando menus e páginas administrativas no WordPress

Antes de iniciarmos este artigo, gostaria de lembrá-lo sobre o curso Desenvolvimento de Plugins para WordPress comigo, Leandro Vieira, no iMasters PRO. O treinamento vai mostrar a utilidade e o desenvolvimento de Plugins
WordPress, visando desmitificar a criação e modificação deles. Durante
as aulas, serão apresentadas práticas inteligentes, métodos de
desenvolvimento, e a utilização de JavaScript, Ajax e CSS. Ao fim do
curso, os alunos estarão aptos a criar e modificar plugins WordPress
existentes no mercado.

Agora, vamos ao artigo da semana.

Alguns plugins precisam ser configurados. Não seria interessante sugerir
ao usuário que mudasse o valor de uma ou outra variável no arquivo PHP
do plugin para configurá-lo como desejado. O WordPress permite que
páginas administrativas sejam criadas e através delas podemos
disponibilizar ao usuário uma interface que o permite configurar e
interagir com o plugin.

Os menus administrativos do WordPress são
criados “on the fly”, ou seja, eles são recriados a cada acesso a uma
das páginas da administração. Os menus são dinâmicos e permitem serem
modificados ou acrescentando novos itens e subitens.

Para
criarmos menus e páginas administrativas precisamos executar as seguintes
tarefas:

  1. Criar uma função no arquivo do plugin contendo
    os códigos utilizados para criar os menus;
  2. Registrar tal função
    através da add_action() usando o gancho “admin_menu”;
  3. Criar o
    HTML da página a ser exibida quando o menu for clicado.

Vejamos
um exemplo ilustrativo dessas tarefas.

<?php<br />// ...<br />function <br />prefixo_funcao_menu()<br />{<br />   <br /> add_options_page( 'Título na tag title', 'Título no menu', 10, <br />'identificao-unica', 'prefixo_funcao_conteudo' );<br />}<br />function prefixo_funcao_conteudo()<br />{<br />    echo '<div class="wrap">';<br />    echo '...';<br />}<br />add_action( 'admin_menu', 'prefixo_funcao_menu' );<br />?>

No exemplo acima temos duas funções: prefixo_funcao_menu() e
prefixo_funcao_conteudo().

A primeira foi registrada junto ao
gancho “admin_menu” através da add_action() e quando chamada criará um
novo item ao menu de Configurações através da função add_options_page().

A
segunda é chamada pela função add_options_page() no quinto parâmetro e
responsável por imprimir na tela o HTML da página.

O HTML da
página poderia estar contido num arquivo em vez de estar englobado numa
função como no exemplo acima. Neste caso a função add_options_page()
deveria ser utilizada da seguinte forma:

add_options_page( <br />'Título na tag title', 'Título no menu', 10, <br />'arquivo-da-pagina-opcao.php' );

Há várias funções utilizadas
para criar itens de menu em locais específicos bem como para criar novos
grupos de menu, o que chamamos de “top-level menu”. Essa última opção é
utilizada quando o plugin possui várias páginas e optamos por mantê-las
relacionadas e organizadas.

Vejamos então como criar novos
grupos de menu ou “top-level menu”. Há duas funções para esse propósito,
são elas: add_menu_page() e add_submenu_page(). Essa segunda adiciona
novos itens de menu ao menu principal criado com a primeira.

Observe
os códigos abaixo responsáveis por criarem um novo grupo de menu com um
submenu.

<?php<br />// ...<br />function prefixo_funcao_menu()<br />{<br />add_menu_page( 'Título na tag title', 'Título no menu', 10, <br />'pasta-plugin/treinamentos.php' );<br />add_submenu_page( <br />'pasta-plugin/treinamentos.php', 'Título na tag title', 'Título no <br />submenu', 10, 'pasta-plugin/inscricao.php' );<br />}<br />add_action( 'admin_menu', <br />'prefixo_funcao_menu' );<br />?>

Antes de compreendermos o código acima, vamos conhecer os parâmetros das
funções utilizadas.

add_menu_page( título página, título menu,
nível de acesso, arquivo, [função], [url ícone] );

título
página

O título da página utilizado junto a tag <title>
quando o menu estiver ativo.

título menu

O título
do menu que acabara de ser criado.

nível de acesso

O
nível de acesso mínimo necessário para exibir e utilizar a página.

arquivo

Arquivo
que exibe o conteúdo da página do menu.

[função]

Função
que exibe o conteúdo da página do menu.

[url ícone]

URL
do ícone personalizado a ser utilizado no menu. Funciona a partir da
versão 2.7 do WordPress.

O conteúdo da página do menu pode ser
fornecido por um arquivo ou por uma função. Observe que o quarto
arquivo, e o quinto, [função], parâmetro têm o mesmo objetivo. Se esse
último que é opcional não for informado, o WordPress considera que o
conteúdo da página será gerado pelo arquivo sem a necessidade de chamar
uma função.

Fica a seu critério de qual o melhor método para você
exibir o conteúdo da página. Este que vos escreve tem uma preferência
por utilizar um arquivo.

add_submenu_page( pai, título página, <br />título menu, nível de acesso, arquivo, [função] );

pai

O
nome do arquivo utilizado na administração do WordPress que compõe um
grupo de menu (top-level) o qual você deseja incluir seu submenu. Você
pode informar arquivos nativos do WordPress ou os criados por você.

Os
arquivos nativos e mais comum, são:

  • post-new.php –
    add_submenu_page( ‘post-new.php’, …
  • themes.php –
    add_submenu_page( ‘themes.php’, …
  • edit-comments.php
    – add_submenu_page( ‘edit-comments.php’, …
  • options-general.php
    – add_submenu_page( ‘options-general.php’, …
  • plugins.php
    – add_submenu_page( ‘plugins.php’, …
  • users.php –
    add_submenu_page( ‘users.php’, …

título página

O
título da página utilizado junto a tag <title> quando o submenu
estiver ativo.

título menu

O título do submenu que
acabara de ser criado.

nível de acesso

O nível de
acesso mínimo necessário para exibir e utilizar a página.

arquivo

Arquivo
que exibe o conteúdo da página do submenu.

[função]

Função
que exibe o conteúdo da página do submenu.

Se você utilizar uma
função para exibir o conteúdo do submenu, informe no parâmetro do
arquivo (o quarto) uma identificação única do seu plugin. Um exemplo:

add_submenu_page(<br /> 'users.php', 'título página', 'título menu', 10, __FILE__, <br />'exibe_pagina_submenu' );<br /><br />add_submenu_page( 'users.php', 'título <br />página', 'título menu', 10, 'identificao-unica', 'exibe_pagina_submenu' <br />);

Neste artigo conhecemos o procedimento para a criação de menus e páginas administrativas no WordPress. No curso
Desenvolvimento de Plugins para WordPress
você aprenderá outras técnicas importantes, atuais e criativas para o desenvolvimento de plugins nessa plataforma. Até lá!

Uma das grandes referências de WordPress no Brasil, entusiasta e evangelista da plataforma. Fundador e CEO da Apiki, empresa especializada no desenvolvimento web com WordPress.

Ver perfil