web-dev-qa-db-fra.com

wp_dropdown_pages valeur par défaut

J'ai un menu déroulant de pages, mais après avoir accédé à une page sélectionnée, disons "À propos de nous", le bouton de titre par défaut de dropbown est le titre de la page, "à propos de nous", je veux donc l'option titre/défaut être "S'il vous plaît sélectionner une page" ou quelque chose comme ça.

Mon code est le suivant:

wp_dropdown_pages("title_li=&depth=1&sort_column=menu_order&child_of=".$post->post_parent."&echo=0&selected=$currPage");

Qu'est-ce que je fais mal ou à quoi mon code devrait ressembler?

2
aBc

Je suggérerais que vous passiez du style "argument de requête URl" aux tableaux. Il s’agit d’une "fonctionnalité" qui est davantage un résidu de certaines fonctions qui n’est disponible que pour des raisons de compatibilité ascendante.

Voici une version retravaillée de vos arguments actuels:

wp_dropdown_pages( array(
    'title_li'    => '',
    'depth'       => TRUE,               // originally: 1,
    'sort_column' => 'menu_order',
    'child_of'    => $post->post_parent,
    'echo'        => FALSE,              // originally: 0,
    'selected'    => $currPage,
) );

Maintenant, je me demande comment vous avez réussi à afficher cet élément de menu déroulant/de sélection lorsque echo a été défini sur 0/false et qu'aucune echo/print n'a été ajoutée à cette instruction. Si vous ne faites que l'ajouter à votre modèle de cette manière, il est préférable de définir echo sur TRUE.

En regardant l’argument selected (et comme vous pouvez le lire dans la documentation du Codex), c’est l’argument qui choisit quel élément est actuellement selected. Comme vous le définissez sur $currPage, ce qui, je suppose, contient le slug de la page actuelle, il vous montre exactement cela. Pour "résoudre" votre problème, définissez-le simplement sur une chaîne vide ''.

À propos de la première valeur/valeur non sélectionnée: vous pouvez définir cela avec l’argument show_option_none

'show_option_none' => 'Please select a page',
1
kaiser