Je travaillais sur un nouveau thème hier et j’ai réalisé que je devais fournir une option de liste déroulante dans mon panneau de thème où l’utilisateur pouvait choisir une page dans une liste qui incluait toutes les pages qu’il avait publiées. Pour ce faire, je devais créer un tableau qui rassemblait toutes les pages des utilisateurs afin que je puisse ensuite les afficher dans mon panneau d’options. Vous trouverez ci-dessous un guide vous montrant comment 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 nécessaire 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 de code est de créer un tableau associatif plus simple où les clés sont les numéros d’ID 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 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 dans laquelle 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 utilisant une fonction simple 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.

Share: