私のすべてのページに値を渡すために、Menuに変数を追加したいです。目的は、トラッキングへの(私のWebサイトのリンクから)別のWebサイトへの転送のための値を取得することです。この値はユーザーの出身地によって異なります。
私のメニューの例:
- 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/
ページ下部の "?>
"の前のfunction.phpに、以下を追加します。
$myPartenaire = $_GET['partenaire'];
In header.php最初に、私は追加しました:
<?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;
?>
ナビゲーションメニューのすべてのリンクに.
生の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;
}
カスタムメニューの作成については、この回答を参照してください。Walker https://wordpress.stackexchange.com/a/14039/6477
それなら答えのように "description"を追加する代わりに、hrefリンクを修正することができるはずです。