81 votes

Comment passer des variables supplémentaires dans l'URL avec WordPress

J'ai des difficultés à passer une variable supplémentaire dans l'url de mon installation WordPress.

Par exemple /news?c=123

Pour une raison quelconque, cela ne fonctionne que sur le site web Root. www.example.com?c=123 mais cela ne fonctionne pas si l'url contient d'autres informations www.example.com/news?c=123 . J'ai le code suivant dans mon fichier functions.php dans le répertoire du thème.

if (isset($_GET['c'])) 
{
  setcookie("cCookie", $_GET['c']); 
}

if (isset($_SERVER['HTTP_REFERER']))
{
  setcookie("rCookie", $_SERVER['HTTP_REFERER']);
}

Des idées ?

4voto

user3777827 Points 314
<?php
$edit_post = add_query_arg('c', '123', 'news' );

?>

<a href="<?php echo $edit_post; ?>">Go to New page</a>

Vous pouvez ajouter n'importe quelle page à la place de "news".

3voto

snm-yah Points 2067

À ajouter un paramètre aux urls des messages (pour les liens permanents), j'utilise ceci :

add_filter( 'post_type_link', 'append_query_string', 10, 2 );
function append_query_string( $url, $post ) 
{
    return add_query_arg('my_pid',$post->ID, $url);
}

sortie :

http://yoursite.com/pagename?my_pid=12345678

2 votes

@mwebber la réponse n'avait pas pour but de donner la réponse "comment détecter ? ou # dans l'url", mais de montrer un hook pour modifier l'url. Cependant, comme vous le souhaitiez, j'ai mis à jour la réponse pour me conformer à votre commentaire.

1voto

brenjt Points 5992

C'est le seul moyen que j'ai trouvé pour que ça marche.

add_action('init','add_query_args');
function add_query_args()
{ 
    add_query_arg( 'var1', 'val1' );
}

http://codex.wordpress.org/Function_Reference/add_query_arg

-1voto

Vicky P Points 84

Dans votre cas, il suffit d'ajouter / après l'url et de mettre les arguments de la requête.

www.example.com/news/?c=123 ou news/?c=123

au lieu de

www.example.com/news?c=123 ou news?c=123

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X