外部ファイル化したヘッダーナビゲーションが機能しない
-
テーマを作成しております。
これまで、ヘッダーの画像で作成したグローバルナビゲーションを、テンプレートファイルごとに記述していたので、
hdr.php
という外部ファイルをつくり、そこだけに入れました。
これで、ナビゲーションに変更があってもこのhdr.phpを変更するだけで完了させることができます。しかし、ここに記載したPHP条件分岐コードが機能しないのです。
普通にエラー無く出力自体はされるのですが、意図しない状態で出力されてしまいます。グローバルナビゲーションのうち、「製品」のページを開いたときは、「製品」の画像だけがマウスオーバーの画像を表示させて、現在地がどこのカテゴリーにいるかを視覚的に見せたいのですが、
マウスアウト時の画像のままになってしまいます。
そして、「製品」のページを開いているのだから、「ホーム」のナビゲーションはマウスアウト画像になって欲しいのに、マウスオーバー画像になっています。つまり、「製品」ページを開いているのに、ホームにいるナビゲーションの状態になっているのです。
これは、「製品」ページに限らず、他のページ、「会社概要」のカテゴリでもどこでも同じ状態です。以下が記載したコードなのですが、このコードで、単なる.phpでウェブページを作ったサイトはこれで機能します。WordPressだと何か勝手が違うのでしょうか?
<ul> <?php if(strpos('/index.php', $_SERVER['PHP_SELF']) === false){ ?> <li><a href="<?php bloginfo('url'); ?>/"><img src="<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv01.gif" alt="ホーム" name="gbnv01" width="110" height="48" border="0" id="gbnv01" onMouseOver="MM_swapImage('gbnv01','','<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif',1)" onMouseOut="MM_swapImgRestore()" /></a></li> <?php }else{ ?> <li><a href="<?php bloginfo('url'); ?>/"><img src="<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif" alt="ホーム" name="gbnv01" width="110" height="48" border="0" id="gbnv01" onMouseOver="MM_swapImage('gbnv01','','<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif',1)" onMouseOut="MM_swapImgRestore()" /></a></li> <?php } ?> <?php if(strpos($_SERVER['PHP_SELF'], '/product/') === false){ ?> <li><a href="<?php bloginfo('url'); ?>/product/"><img src="<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv02.gif" alt="NEiWorks" name="gbnv02" width="150" height="48" border="0" id="gbnv02" onMouseOver="MM_swapImage('gbnv02','','<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv02on.gif',1)" onMouseOut="MM_swapImgRestore()" /></a></li> <?php }else{ ?> <li><a href="<?php bloginfo('url'); ?>/product/"><img src="<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv02on.gif" alt="NEiWorks" name="gbnv02" width="150" height="48" border="0" id="gbnv02" onMouseOver="MM_swapImage('gbnv02','','<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv02on.gif',1)" onMouseOut="MM_swapImgRestore()" /></a></li> <?php } ?> <?php if(strpos($_SERVER['PHP_SELF'], '/corpinfo/') === false){ ?> <li><a href="<?php bloginfo('url'); ?>/corpinfo/"><img src="<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv03.gif" alt="corpinfo" name="gbnv03" width="150" height="48" border="0" id="gbnv03" onMouseOver="MM_swapImage('gbnv03','','<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv03on.gif',1)" onMouseOut="MM_swapImgRestore()" /></a></li> <?php }else{ ?> <li><a href="<?php bloginfo('url'); ?>/corpinfo/"><img src="<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv03on.gif" alt="corpinfo" name="gbnv03" width="150" height="48" border="0" id="gbnv03" onMouseOver="MM_swapImage('gbnv03','','<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv03on.gif',1)" onMouseOut="MM_swapImgRestore()" /></a></li> <?php } ?> 以下、ナビゲーション続く ..... </ul>
各テンプレートファイルのヘッダーを読み込む記述は、
<?php include (TEMPLATEPATH . “/hdr.php”); ?>
としております。どう記述すればまともに条件分岐できるでしょうか?
- トピック「外部ファイル化したヘッダーナビゲーションが機能しない」には新たに返信することはできません。