Eu estava trabalhando em um novo tema ontem e percebi que precisava fornecer uma opção suspensa no meu painel de temas onde o usuário pudesse escolher uma página de uma lista que incluía todas as páginas que haviam publicado. Para fazer isso eu precisava criar um array que reunisse todas as páginas dos usuários para que eu pudesse mostrá-los no meu painel de opções. Abaixo está um guia mostrando como você pode armazenar uma variedade de páginas do WordPress para uso em seu tema ou plugin, bem como um guia sobre como criar uma lista suspensa de páginas.
Criar uma matriz de páginas
Abaixo está o trecho de código necessário para fazer tudo isso acontecer. O que ele faz é reunir uma lista de suas páginas e armazená-las na variável $pages_array para que mais tarde você possa percorrê-las. E sim a função get_pages já retorna um array mas o objetivo do snippet é criar um array associativo mais simples onde as chaves são os números de ID da página e o valor é o nome da página.
$pages_array = array( ‘Choose A Page’ );
$get_pages = get_pages( ‘hide_empty=0’ );
foreach ( $get_pages as $page ) {
$pages_array[$page->ID] = esc_attr( $page->post_title );
}
Agora você tem uma matriz associativa de páginas que você pode percorrer facilmente, armazenar em uma variável global ou o que quiser.
Criar uma lista suspensa de campos de seleção de páginas
Você pode criar um menu suspenso de seleção onde um usuário pode selecionar uma página de um formulário percorrendo uma matriz de páginas (como mencionado na seção anterior), no entanto, o WordPress possui uma função interna que foi adicionada no WP 2.1 para que você possa criar automaticamente uma lista suspensa de seleção usando uma função simples chamada “ wp_dropdown_pages ” que aceita vários parâmetros. Abaixo está um exemplo da função em ação:
wp_dropdown_pages( array(
‘child_of’ => 0,
‘sort_order’ => ‘ASC’,
‘sort_column’ => ‘post_title’,
‘hierarchical’ => 1,
‘post_type’ => ‘page’
) );
Saiba mais sobre wp_dropdown_pages no WordPress Codex .