2010-10-11 5 views
0

Je développe mon premier plugin Wordpress, et j'ai une ligne qui supprime une entrée. Je dois utiliser les paramètres de la chaîne de requête pour transmettre l'action et l'identifiant de l'objet. Mon code est:Développement de plugins Wordpress: envoyer des paramètres de chaîne de requête

$pageText .= '<td><a href="'.$_SERVER['REQUEST_URI'].'?useraction=delete&domainid='.$file.'">Delete</a></td></tr>'; 

Ceci crée un lien 'delete' et remplit les deux paramètres. Le problème est, Wordpress me donne un "Vous n'avez pas les autorisations suffisantes pour accéder à cette page." pour passer une variable dans la chaîne de requête.

Est-ce que quelqu'un sait comment transmettre correctement des variables dans un plugin?

Répondre

1

Ceci crée un lien 'delete' et remplit les deux paramètres. Le problème est, Wordpress me donne un "Vous n'avez pas les autorisations suffisantes pour accéder à cette page." pour passer une variable dans la chaîne de requête.

Je ne pense pas que ce soit le problème. Je préfère parier qu'en créant l'URL de cette façon, vous perdez d'autres paramètres de requête (qui sont et non préservés dans REQUEST_URI) que vous devez ajouter à nouveau. Pour reconstruire la chaîne de requête complète, la façon la plus propre serait en utilisant http_build_query():

$link = $_SERVER['REQUEST_URI']."?". 
     http_build_query(
      Array('useraction' => 'delete', 'domainid' => $file) 
      + $_GET); 

$pageText .= '<td><a href="'$link">Delete</a></td></tr>'; 

Le http_build_query (il est un peu difficile à lire) fusionne un tableau avec vos paramètres d'URL, et le tableau existant $ _GET ensemble dans une chaîne de requête appropriée.

+0

Il s'avère que vous aviez raison. Merci pour l'aide! – adamturtle

0

Pekka, Le problème ici est que vous obtenez d'énormes URL si quelqu'un continue de supprimer. Je fais quelque chose de similaire avec un paramètre "remove":

http://mydomain.org/wp-admin/admin.php?page=my_plugin&remove=2160735755&page=my_plugin&remove=2160735973&page=my_plugin 

comment "nettoyez" la requête?

Questions connexes