web-dev-qa-db-fra.com

Obtenir le menu déroulant pour rediriger vers différentes pages?

Ce qui me pose problème, c'est un menu déroulant que je souhaite ajouter à ma barre latérale. le blog aura plus d'un utilisateur, donc ce que je veux pour le menu déroulant, c'est de lister tous les différents utilisateurs par leur nom d'affichage, puis une fois que vous avez cliqué sur l'un des utilisateurs sélectionnés pour vous rediriger vers sa page de bio.

le problème est que la seule chose qui relie les utilisateurs à leurs pages de bio est le titre de la page qui sera leur nom complet ... alors maintenant, je dois trouver un moyen d’obtenir l’id de la page en fonction de son titre (depuis Dans le menu déroulant, vous sélectionnerez l’utilisateur par son nom complet qui correspondra au titre de la page) ...

ce que j’essaie de faire, c’est d’ajuster les wp_dropdown_users en ajoutant des éléments au:

$output = "<select onChange='this.form.action=\"/wordpress/?page_id=\"
           +this.options[this.selectedIndex].text ; this.form.submit()'
           name='{$name}'{$id} class='$class'>\n";

maintenant je suis presque sûr d'avoir besoin d'un petit code php pour interroger la base de données ou appeler une fonction à la place du this.options [this.selectedIndex] .text, ce code ne renverrait, espérons-le, que l'id de la page par son titre. .. ainsi l'url serait/wordpress /? page_id = (le numéro d'identification retourné) ...

c'est la fonction que j'ai trouvée pour obtenir l'id de la page par son titre:

 function get_page_by_title($page_title)
 {
    $page = get_page_by_title($page_title);
    // $page is the post array. To just retrieve the id
    $id = $page->ID;
    return $id;
 }

mais je ne connais pas suffisamment la syntaxe pour l'implémenter ... serait-il possible d'appeler cette fonction dans this.form.action? est-ce même possible? d'une autre manière? toute aide serait appréciée et désolée si je ne faisais rien (recherche ou explication sage)

p.s. Je fais mon blog sur mon ordinateur en tant qu'hôte, je ne peux donc pas vraiment le lier car ce n'est pas en direct désolé

2
Crobos

ok donc je l'ai compris ... j'ai changé le select à

  <select onChange='this.form.submit()' name='page_id'{$id} class='$class'>

donc ce nom passé dans l'URL devient? page_id que je veux puisque c'est le format que j'utilise (format wordpress par défaut), puis j'ai appelé ma fonction page_by_title (d'ailleurs je devais changer le nom du get_page_by_title depuis le nom de l'API wp et sinon il irait simplement dans une boucle infinie récursive XD) dans les options telles que

  <option value='".page_by_title($display)."'$_selected>" . esc_html($display) . "</option>

la valeur transmise était l'identifiant de la page ... Je crois que le formulaire doit utiliser la méthode get pour que cela fonctionne

1
Crobos