Je travaillais sur un nouveau thème hier et j’ai réalisé que je devais fournir une option déroulante dans mon panneau de thème où l’utilisateur pouvait choisir une page dans une liste qui comprenait toutes les pages qu’il avait publiées. Pour ce faire, j’avais besoin de créer un tableau rassemblant toutes les pages des utilisateurs afin de pouvoir ensuite les afficher dans mon panneau d’options. Vous trouverez ci-dessous un guide vous montrant comment vous pouvez stocker un tableau de pages WordPress à utiliser dans votre thème ou plugin ainsi qu’un guide sur la création d’une liste déroulante de pages.
Créer un tableau de pages
Vous trouverez ci-dessous l’extrait de code requis pour que tout cela se produise. Ce qu’il fait, c’est qu’il rassemble une liste de vos pages et les stocke dans la variable $pages_array afin que vous puissiez les parcourir plus tard. Et oui, la fonction get_pages renvoie déjà un tableau mais le but de l’extrait est de créer un tableau associatif plus simple où les clés sont les numéros d’identification de page et la valeur est le nom de la page.
$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 );
}
Vous avez maintenant un tableau associatif de pages que vous pouvez facilement parcourir, stocker dans une variable globale ou tout ce que vous voulez.
Créer une liste déroulante de champs de sélection de pages
Vous pouvez créer une liste déroulante de sélection où un utilisateur peut sélectionner une page à partir d’un formulaire en parcourant un tableau de pages (comme mentionné dans la section précédente) cependant, WordPress a une fonction intégrée qui a été ajoutée dans WP 2.1 afin que vous puissiez créer automatiquement une liste déroulante de sélection à l’aide d’une simple fonction nommée « wp_dropdown_pages” qui accepte divers paramètres. Voici un exemple de la fonction en action :
wp_dropdown_pages( array(
'child_of' => 0,
'sort_order' => 'ASC',
'sort_column' => 'post_title',
'hierarchical' => 1,
'post_type' => 'page'
) );
En savoir plus sur wp_dropdown_pages à partir du Codex WordPress.