Je veux ajouter une variable dans le menu, pour passer une valeur dans toute ma page. Le but est de récupérer une valeur pour le transport vers un autre site Web (à partir des liens de mon site) vers le suivi, cette valeur dépend de l'origine de l'utilisateur.
par exemple de mon menu:
- Home = mylink/?partenaire=<?php
echo $myPartenaire;
?>
- About us = mylink/aboutus.php?partenaire=<?php
echo $myPartenaire;
?>
- Contact = mylink/contact.php?partenaire=<?php
echo $myPartenaire;
?>
Je peux récupérer la valeur dans ma page mais pas dans le menu
J'ai installé ce plugin pour mettre PHP dans ma page http://wordpress.org/extend/plugins/insert-php/
Dans function.php avant "?>
" au bas de la page, j'ai ajouté:
$myPartenaire = $_GET['partenaire'];
Dans header.php Au début, j'ai ajouté:
<?php global $myPartenaire ; ?>
Dans ma page, je peux récupérer la valeur, j'ai ajouté:
[insert_php] global $myPartenaire ; [/insert_php]
<a href="http://mylink.com/mypage.php?partenaire=[insert_php]
echo $myPartenaire;
[/insert_php]">LINK OF MY PAGE</a>
eg : mylink/contact?partenaire=<?php
echo $myPartenaire;
?>
Je sais après comment obtenir la valeur de "partenaire" dans ma page, mais je ne sais pas comment ajouter de la valeur
partenaire=<?php
echo $myPartenaire;
?>
dans tout le lien dans mon menu de navigation.
Vous ne devriez jamais avoir besoin d'un plugin pour insérer du code brut PHP quelque part. Il y a toujours des effets secondaires que vous ne pouvez pas voir ou corriger facilement.
Filtrez plutôt wp_nav_menu_objects
et ajoutez le paramètre ici aux URL.
if ( ! empty ( $_GET['partenaire'] ) )
add_filter( 'wp_nav_menu_objects', 'wpse_82194_add_param' );
/**
* Add a parameter to item URLs.
*
* @wp-hook wp_nav_menu_objects
* @param array $items
* @return array
*/
function wpse_82194_add_param( $items )
{
$out = array ();
foreach ( $items as $item )
{
$item->url = add_query_arg( 'partenaire', $_GET['partenaire'], $item->url );
$out[] = $item;
}
return $items;
}
Voir cette réponse sur la création d’un menu personnalisé Walker https://wordpress.stackexchange.com/a/14039/6477
Ensuite, au lieu d’ajouter une "description" conformément à la réponse, vous devriez pouvoir modifier le lien href.