Esta é uma dúvida comum no fórum, como adicionar mais áreas de widgets a um tema?
Não há limites em quantas áreas de widgets um tema pode ter, então podemos criar áreas distintas para cada categoria, para páginas de resultados de procura etc. A única desvantagem é gerenciar tantas áreas, mas ainda assim, é melhor do que editar arquivos manualmente.
Como fazer
Cada área deve ser registrada no arquivo functions.php do tema. Isso deve ser feito assim (você pode pular esta explicação e simplesmente copiar o código logo mais):
- Cria-se uma função, por exemplo
meus_widgets
- Adiciona-se uma ação add_action (a tarefa para o WordPress)
- A ação é executar a função, no caso
meus_widgets
, quando widgets são iniciados no WordPress, isso através do filtro widgets_init - Dentro da função
meus_widgets
está a criação das áreas de widgets através de register_sidebar, isso quer dizer que pode ter outras coisas por lá, como outras funções, etc.
É um pouco estranho o nome dessa função, desde que não serve apenas para barras laterais (sidebars), mas para qualquer parte do layout, como rodapé, cabeçalho etc. Exemplo de como fica o código:
function meus_widgets() { //aqui começa a area Traduz register_sidebar( array( //Registrando a area Traduz 'name' => 'Traduz', //nome da area 'id' => 'traduz-widget-area', //id css da area 'description' => 'Aqui ficam listas de feeds', //uma descrição breve 'before_widget' => '<li id="%1$s" class="widget-container %2$s">', //tag html que vem antes 'after_widget' => '</li>', //tag html que vem depois 'before_title' => '<h3 class="widget-title">', //tag html antes do titulo 'after_title' => '</h3>', //tag html depois do titulo ) ); //aqui termina a area Traduz } add_action( 'widgets_init', 'meus_widgets' );
Para cada área, você deve criar um bloco com as informações necessárias, você pode omitir algumas informações como description
, que é a descrição que aparece no painel. O item name
não pode ser omitido!
Se estiver modificando um tema, lembre-se de fazer as modificações através de um tema filho, e também use as informações do tema para criar as outras áreas, como a before_widget
, after_widget
etc, estas informações determinam a aparência da área de widgets, então ao usar as mesmas informações do tema, você faz com que suas novas áreas tenham a mesma aparência das áreas nativas.
6 comentários sobre "Adicionar várias áreas de widgets"
Elcy Alves
25.04.2015
miazevedo
15.04.2014
9.03.2014
foradamodablog
13.01.2014
2.12.2011
Diana K. C.
2.12.2011
Comments are closed.