Je fais un plugin WordPress. J'ai utilisé Add_Query_string () à l'intérieur des ancres pour charger le contenu en fonction de ce que l'utilisateur a cliqué sur le lien. Maintenant, j'ai besoin de connaître la meilleure façon d'obtenir la valeur du paramètre dans l'URI actuelle.
C'est probablement une question assez fondamentale et stupide, mais je suis nouveau à la programmation pour que je suis désolé si je suis mal interprété certains termes. p>
Ceci est le code: p>
4 Réponses :
Je pense que vous demandez get_query_var () fonction. Dans votre cas, vous devriez utiliser get_query_var ('adminoption'). J'espère que cela aide p>
Merci David. Belle suggestion, mais cela revint vide pour moi. La vérité est que je ne sais même pas si je devrais utiliser add_query_arg (). Tout ce que j'ai besoin de faire est de montrer du contenu sur la même page en fonction de la chaîne de requête. Je pourrais simplement créer une page pour chaque lien, mais ce n'est pas une option car je n'apprendrais rien, et que l'apprentissage est la raison principale que je joue avec la création d'un plugin.
Quelle est votre URL comme après avoir cliqué sur un lien? Est-ce quelque chose comme www.yoursite.com/?adminoption=1 juste pour savoir si votre problème commence sur add_query_arg (). En tout cas, vous pouvez essayer avec l'ancien PHP $ _GET ['adminoption'].
Oui, l'URL après avoir cliqué sur un lien est bien. Et $ _GET ['adminoption'] a fonctionné comme un charme. Merci un tas! Dois-je m'inquiéter de la sécurité tout en utilisant $ _GET cependant?
Je suppose que vous ne montrez qu'un contenu basé sur l'argument et que vous ne mettez pas la valeur dans une requête de DB, ni l'utiliser directement à la page, vous ne devriez donc pas avoir de problème. Je suppose que WP utilise une fonction pour récupérer des valeurs, pour des raisons de sécurité, ajouter des contrôles et les assainir, mais cela ne devrait pas être le cas. Étrange que la fonction WP ne fonctionne pas. Avez-vous eu une erreur? ou juste une valeur vide? Quel type de page est celui où vous écrivez le code?
Juste une valeur vide. Pourrait-il être la portée que je l'appelle? Le code est à l'intérieur d'une fonction statique.
Ne supposez pas que $ _GET est en sécurité, même si vous ne mettez pas la valeur dans une DB. Vous pouvez toujours être vulnérable aux scripts de sites croisés, c'est-à-dire une personne insérant un code malveillant dans votre page via un paramètre d'obtention.
Cela semble ne fonctionne pas pour la requête personnalisée vars. Juste essayer la solution @reine Johansson
Réponse cachée dans les commentaires de David Carrus: P>
De toute façon, vous pouvez essayer avec l'ancien PHP $ _GET ['adminoption']. P> blockQuote>
Pour obtenir un Vars à partir de la chaîne de requête, vous pouvez utiliser Selon ce que vous faites, vous pouvez également utiliser Si vous souhaitez utiliser la requête personnalisée Vares avec cette fonction, vous devez utiliser le Query_Vars filtre Pour modifier la liste des requêtes prises en charge vars, vous pouvez lire comment faire cela dans la documentation liée ci-dessus. P> $ _ obtenez la méthode ['Key' 'd'obtenir une méthode [' Key '] $ "de PHP. P>
get_query_var ('Key') code>, Cette fonction fonctionne avec des paramètres acceptés par la classe wp_query (chat, auteur, etc.) . p>
+1 surprenant get_query_var ('Key') code> ne fonctionne pas avec des arguments personnalisés et c'est la seule réponse qui le mentionne
get_query_var ('adminoption') fonctionne uniquement avec des VAR standard ou enregistrés. Donc, pour les fichiers WordPress non standard, vous devez d'abord l'enregistrer dans vos fonctions.php Fichier:
function rj_add_query_vars_filter( $vars ){ $vars[] = "adminoption"; return $vars; } add_filter( 'query_vars', 'rj_add_query_vars_filter' ); get_query_var('adminoption');
Qu'ajoutez-vous "groupe" au $ vars [] code> tableau? Ne devrait-il pas être
$ var [] = "adminoption"; code>?