Menu de Páginas no WordPress
O WordPress em seu tema padrão, Kubrick, já traz a Template Tag wp_list_pages, que monta um menu automático em sua sidebar. Neste artigo vou mostrar qual o uso avançado dessa função e como podemos otimizar a construção de menus através de parâmetros passados para a função. Você aprenderá também a montar submenus com a mesma função, ou seja, mostrar as páginas contidas em uma determinada página.
Para puxar todas as páginas do wordpress automaticamente, usamos o código:
<ul>
<?php wp_list_pages(); ?>
</ul>
Esse código retorna todas as páginas publicadas no seu wordpress em itens de uma lista html:
<li class="pagenav">Páginas<ul><li class="page_item page-item-77"><a href="http://www.seusite.com/suapagina/" title="Sua Página">Sua Página</a></li>
Note que você tem que adicionar uma <ul> antes do código php, senão seu HTML terá erros. Perceba também que o título Páginas que vem antes da lista.
Acontece que ele pega todas as páginas e, dependendo do caso, precisamos passar alguns parâmetros para ter um resultado customizado para as nossas necessidades.
Abaixo mostro os parâmetros mais importantes para você poder filtrar os resultados.
depth
Esse parâmetro controla quantos levels você quer exibir de páginas e subpáginas.
Ex 1: Mostrar só a “primeira fila” de páginas, aquelas que não estão dentro de nenhuma.
<ul> <?php wp_list_pages('depth=1'); ?> </ul>
title_li
Com esse parâmetro você pode arrancar o título “Paginas” ou “Pages” que vem junto com a lista.
Ex 2: Mostrar só as páginas que não estão dentro de nenhuma e arrancar o título Página:
<ul> <?php wp_list_pages('depth=1&title_li='); ?> </ul>
Perceba que para colocar mais de um parâmetro dentro do código foi usado o & – serve para ligar os parâmetros.
exclude
Há uma página sendo exibida, mas você não quer que ela apareça? Então iremos excluí-la pela sua ID. Você precisa descobrir qual é a ID da página. ID é um número que identifica qual é a página para o WordPress. Para saber qual é a ID da página, vá até o painel em editar páginas, coloque a seta do mouse em cima do link com o nome da Página e olhe na Barra de Status do seu navegador.
Esse número que aparece por último na URL é a ID da página. No nosso caso, 16.
Ex 3: Mostrar só as páginas que não estão dentro de nenhuma e arrancar o título Páginas e excluir a página serviços.
<ul> <?php wp_list_pages('depth=1&title_li=&exclude=16'); ?> </ul>
Se você quiser excluir mais de uma página, basta colocar ponto e vírgula ( ; ) e colocar a outra id.
child_of
Este parâmetro exibe páginas que estão contidas dentro da página atual. Suponha que eu estou na Página Serviços e quero que ela exiba as páginas contidas dentro dessa página. Para isso você tem que colocar o código dentro do Loop do arquivo page.php ou de outro template, porque é o loop que identifica qual é a ID da página, para informar de qual página você está querendo exibir as subpáginas.
<ul> <?php wp_list_pages('title_li=&child_of='.$post->ID.''); ?> </ul>
Ainda existem outros parâmetros, como exibir a data de criação, o formato da data, incluir uma página na lista, não mostrar os resultados, apenas guardar em uma array, colocar um link antes ou depois etc. Abaixo deixo a página da documentação completa em Inglês para quem quiser aprender mais sobre essa função.