Ayer estaba trabajando en un nuevo tema y me di cuenta de que necesitaba proporcionar una opción desplegable en mi panel de temas donde el usuario podía elegir una página de una lista que incluía todas las páginas que había publicado. Para hacer esto, necesitaba crear una matriz que reuniera todas las páginas de los usuarios para poder mostrarlas en mi panel de opciones. A continuación hay una guía que le muestra cómo puede almacenar una variedad de páginas de WordPress para usar en su tema o complemento, así como una guía sobre cómo crear un menú desplegable de páginas.
Crear una matriz de páginas
A continuación se muestra el fragmento de código necesario para que todo esto suceda. Lo que hace es recopilar una lista de sus páginas y almacenarlas en la variable $pages_array para que luego pueda recorrerlas. Y sí, la función get_pages ya devuelve una matriz, pero el propósito del fragmento es crear una matriz asociativa más simple donde las claves son los números de identificación de la página y el valor es el nombre de la 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 );
}
Ahora tiene una matriz asociativa de páginas que puede recorrer fácilmente, almacenar en una variable global o lo que desee.
Crear un campo de selección desplegable de páginas
Puede crear un menú desplegable de selección donde un usuario puede seleccionar una página de un formulario recorriendo una serie de páginas (como se mencionó en la sección anterior); sin embargo, WordPress tiene una función incorporada que se agregó en WP 2.1 para que pueda crear automáticamente un menú desplegable de selección usando una función simple llamada «wp_dropdown_pages” que acepta varios parámetros. A continuación se muestra un ejemplo de la función en acción:
wp_dropdown_pages( array(
'child_of' => 0,
'sort_order' => 'ASC',
'sort_column' => 'post_title',
'hierarchical' => 1,
'post_type' => 'page'
) );
Obtenga más información sobre wp_dropdown_pages en el Códice de WordPress.