我想在菜单中添加一个变量,用于在我的所有页面中传递值。目的是检索一个值,以便将其传输到另一个网站(从我的网站链接)进行跟踪,该值取决于用户的来源。
我的菜单示例:
- Home = mylink/?partenaire=<?php
echo $myPartenaire;
?>
- About us = mylink/aboutus.php?partenaire=<?php
echo $myPartenaire;
?>
- Contact = mylink/contact.php?partenaire=<?php
echo $myPartenaire;
?>
我可以在页面中检索值,但不能在菜单中检索
我安装了这个插件,将PHP放入我的页面http://wordpress.org/extend/plugins/insert-php/
在功能中。“之前的php”?>
“在页面底部,我添加了:
$myPartenaire = $_GET[\'partenaire\'];
在页眉中。phpAt开头,我补充道:
<?php global $myPartenaire ; ?>
在我的页面中,我可以检索值,我添加了:
[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;
?>
我知道如何在我的页面中获取“partenaire”的值,但我不知道如何添加值
partenaire=<?php
echo $myPartenaire;
?>
在我的导航菜单的所有链接中。
SO网友:fuxia
您永远不应该需要插件来在某处插入原始PHP代码。总有一些副作用你看不到或很难修复。
滤器wp_nav_menu_objects
而是将参数添加到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;
}