• テーマを作成しております。
    これまで、ヘッダーの画像で作成したグローバルナビゲーションを、テンプレートファイルごとに記述していたので、
    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”); ?>
    としております。

    どう記述すればまともに条件分岐できるでしょうか?

15件の返信を表示中 - 1 - 15件目 (全21件中)
  • 第一比較目が逆だと思いますが・・・その前に
    正直自分の意見は自信無いのですが
    wordpressで処理スクリプトを取得の前に
    wordpressが噛んでいるのでサーバー変数を取得できなかった気がします
    現在のページ等でIDとかを取得して分岐させるしかないものかと・・・
    (コアな部分を覗いていないので詳しくは分かりませんが間違っていたらすみません)

    あと凄く個人的な意見で余計なお世話かもしれませんが
    同じような処理が並んでいるのが見栄え的にちょっと気になります
    エスケープシーケンスもある事ですし、
    多次元配列にでも放り込んでループしながらTAGを出力した方がいい気がします
    (真と偽で変わってる所が一部分なのでもうちょっと統一出来そうな気がしますが・・・)

    <ul>
    <?php
    	$arrayTag[] = array('/index.php',
    						"<li><a href=\"". bloginfo('url')."/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>",
    						"<li><a href=\"". bloginfo('url')."/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>");
    	$arrayTag[] = array('/product/',
    						"<li><a href=\"".bloginfo('url')."/product/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv02on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>",
    						"<li><a href=\"".bloginfo('url')."/product/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv02on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>");
    	$arrayTag[] = array('/corpinfo/',
    						"<li><a href=\"".bloginfo('url')."/corpinfo/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv03on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>",
    						"<li><a href=\"".bloginfo('url')."/corpinfo/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv03on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>");
    
    	foreach($arrayTag as $singleArray){
    		if(strpos($_SERVER['PHP_SELF'], $singleArray[0]) === false){
    			echo $singleArray[1];
    		}else{
    			echo $singleArray[2];
    		}
    	}
    ?>
    </ul>
    トピック投稿者 gapel

    (@gapel)

    有難う御座います。大変参考になっております。
    済みません、外部ファイル化するだけのために.htmlではなく.phpファイルにしてウェブサイトをつくっただけで、どこかのフォーラムで教えていただいたやり方ですので、この記述方法に全くこだわってはおりません。
    おっしゃいますように短く記述できる方法で、IDを取得、というのですかね、それの方式で全く構いません。その方向のものを教えて頂けたら助かります。
    何卒宜しくお願い致します。

    $_SERVER[‘PHP_SELF’] → broginfo(“url”)
    でいい気がしてきたんですが
    結局現在のアクセス階層が指定した場所に合っているかなので

    if(strpos($_SERVER['PHP_SELF'], $singleArray[0]) === false){

             ↓↓↓↓↓↓↓↓↓↓

    if(strpos(broginfo('url'), $singleArray[0]) === false){

    自分の考えとしてはパーマリンクを設定していると上記やURL取得
    $_SERVER[“QUERY_STRING”]や$_SERVER[‘PHP_SELF’]では正しい値が取れない気がしてます
    上で無理ならやはりページIDを取得しにいかないといけないので

    $pageID = $post->ID;
    $pageURI = get_page_uri($pageID);
    if(strpos($pageURI, $singleArray[0]) === false){

    こんな感じになる気がします・・・
    (最後のでパーマリンクURI取れたらすみません・・・)
    後は比較する先のURLをページスラッグに変え、スラッグ名を取得してやるかですかね?

    こんにちは

    ご質問とは、ぜんぜん違うかもしれませんが、
    極私的、ワードプレスっぽいコーディング書いてみました

    hdr.php

    <ul><?php
    $args = array(
    'title_li'    => ' ',
    'link_before' => '<span>',
        'link_after'  => '</span>',
    );
    wp_list_pages($args);?></ul>

    インクルードするテンプレートの記述(例えば、index.php)

    <?php get_template_part('hdr');?>

    このようにした場合の、リストの出力は以下のようになります。

    About The Tests2ページを表示した場合の 出力html

    <body class=".... page-id-2 .....">
    
    <ul>
    	<li class="pagenav">
    		</ul>
    <ul>
    			<li class="page_item page-item-2 current_page_item">
    				<a href="http://www.example.com/about">
    					<span>About The Tests2</span>
    				</a>
    
    			<li class="page_item page-item-3">
    				<a href="http://www.example.com/about2">
    					<span>About The Tests3</span>
    				</a>
    
    </ul>
    </body>

    About The Tests3ページを表示した場合の 出力html

    <body class=".... page-id-3 .....">
    
    <ul>
    	<li class="pagenav">
    		</ul>
    <ul>
    			<li class="page_item page-item-2">
    				<a href="http://www.example.com/about">
    					<span>About The Tests2</span>
    				</a>
    
    			<li class="page_item page-item-3 current_page_item">
    				<a href="http://www.example.com/about2">
    					<span>About The Tests3</span>
    				</a>
    
    </ul>
    </body>

    あとは、CSSで何とかする
    page-item-2と page-id-2 クラスで背景画像としてスタイルルールを組むといいんじゃないかなと思います

    トピック投稿者 gapel

    (@gapel)

    ご質問とは、ぜんぜん違うかもしれませんが、
    極私的、ワードプレスっぽいコーディング書いてみました

    ありがとうございます。ちょっと確認させてください。

    (1) 「質問とはぜんぜんちがう」と書いてありはしますが、ご紹介くださったソースというのは、
    書き方がもともとお見せしたものと違うだけであって、機能としては同じになるのですよね?

    (2) CSSの背景画像ということですと、text-indent: -9999pxを使う手法ということなんでしょうか?
    Googleにスパム扱いされて検索順位から圏外に飛ばされる可能性があるので、できればこれは使いたくないので伺います。代替え方法があればいいのですが。

    宜しくお願いします。

    トピック投稿者 gapel

    (@gapel)

    CyberCypher様、ありがとうございます。

    やってみました。
    最下部のif文も追加された方に差し替えておこないました。

    <ul>
    <?php
    	$arrayTag[] = array('/index.php',
    						"<li><a href=\"". bloginfo('url')."/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>",
    						"<li><a href=\"". bloginfo('url')."/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>");
    	$arrayTag[] = array('/product/',
    						"<li><a href=\"".bloginfo('url')."/product/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv02on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>",
    						"<li><a href=\"".bloginfo('url')."/product/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv02on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>");
    	$arrayTag[] = array('/corpinfo/',
    						"<li><a href=\"".bloginfo('url')."/corpinfo/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv03on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>",
    						"<li><a href=\"".bloginfo('url')."/corpinfo/\"><img src=\"".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\',\'\',\'".bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/gbnv03on.gif\',1)\" onMouseOut=\"MM_swapImgRestore()\" /></a></li>");
    
    	foreach($arrayTag as $singleArray){
    		if(strpos(broginfo('url'), $singleArray[0]) === false){
    			echo $singleArray[1];
    		}else{
    			echo $singleArray[2];
    		}
    	}
    ?>
    </ul>

    その結果ですが、以下のようなコードがサイトのグローバルナビゲーションのところに表示されてしまいました。

    http://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jp
    Fatal error: Call to undefined function broginfo() in /www/myserver/mysite.jp/wp-content/themes/mytmpl/hdr.php on line 38

    ナビゲーション画像は一切見えません。
    どこが間違っているでしょうか?
    line38といったら、
    if(strpos(broginfo(‘url’), $singleArray[0]) === false){
    この行でした。

    こんにちは、gapelさん

    (1) 「質問とはぜんぜんちがう」と書いてありはしますが、ご紹介くださったソースというのは、
    書き方がもともとお見せしたものと違うだけであって、機能としては同じになるのですよね?

    ワードプレスの関数を使って、ページのリンクを書き出しますので、ページへのリストが表示されます。この時点では、ページの画像は表示されずに、テキストが表示されます。

    なぜ、PHPのインクルードで出来る事をわざわざWordPressの関数を持ち出したか

    知ったかぶりしたかった。(ちょっと、うそです)

    後々、インクルードするタイミングで、何らかのアクションを起こすとか、チャイルドテーマにそのまま移行できるとか、便利なんじゃないかなと思っているので、あえて書きました

    (2) CSSの背景画像ということですと、text-indent: -9999pxを使う手法ということなんでしょうか?

    ちょっと違います。

    spanタグを入れていますが、ここにvisibility:hiddenか、display:noneでリンク文字列を非表示にします。

    背景画像は、.page-item-2などのクラスを使って背景を表示させます。

    ページにアクセスした時に、強調表示する背景は、

    下のように、2種類のスタイルルールを記述すれば、

    .page-item-2{background:url():}/*どのページでも表示される画像*/
    #page-id-2 .page-item-2{background:url():}/*そのページでしか表示されない画像*/

    そのページを表示した時だけ目的の背景画像が表示されるというイメージです。

    ※spanタグを使って文字列を操作する、典型例は、

    http://www.csszengarden.com/tr/japanese/

    などで見ることが出来ます。 

    未定義とか言われてるし、もしかしたら配列がヌルかもしれない・・・

    for($x=0;$x<count($arrayTag);$x++){
    		if(!(is_null($arrayTag[$x][0])) && $arrayTag[$x][0] != ""){
    			if(strpos(broginfo('url'), $arrayTag[$x][0]) === false){
    				echo $arrayTag[$x][1];
    			}else{
    				echo $arrayTag[$x][2];
    			}
    		}else{
    			echo $arrayTag[$x][2];
    		}
    	}

    手抜きがイけなかったのか後ほど検証してみたいと思うけれど・・・
    先に恐らくであろうコードをとりあえず、Broginfoが取得できてるかも気になりますが・・・

    トピック投稿者 gapel

    (@gapel)

    CyberCypher様、ありがとうございます。感謝しています。
    早速、前回のものと入れ替えてみました。
    すると、CyberCypher様のおっしゃるとおり、bloginfoについて何かFatal errorがあるように書かれているようでした。変わらずナビゲーション画像は表示されていない状態です。
    コードは以下でした。

    http://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jphttp://www.mysite.jp
    Fatal error: Call to undefined function broginfo() in /www/myserveracount/mysite.jp/wp-content/themes/mytmpl/hdr.php on line 39

    「 未定義機能への呼び出し broginfo()」ということですかね?
    broginfo()というのはWordPressの大元の方で定義されているWordPress専用の関数名かと思っておりました。なので、最初からあるものだと思っていたのでなぜ定義というものが必要なのかわからない状態です。
    また、定義とはどうやっておこなうことでしょうか??
    bloginfo ();
    をif文の前に書いてもみたのですが、ダメでした。Fatal errorが出ていました。

    wordpressのテーマ配下にいるなら大丈夫だとは思うのですが
    テーマ配下外の階層にいると上手く認識しないのだと思います
    ループの中だから使えない・・・というわけではないので

    確認のために上のコードは一旦バックアップしてでも置いといて
    全部削除しちゃっても良いんで一つずつ確認しましょう
    <?php echo broginfo(‘template_directory’); ?>
    でテンプレートの階層が取得できるか
    出来るなら問題は別の所にあると思われるし
    出来ないのなら階層がおかしいのだと思われる
    まずは命令が上手く仕えているかどうか1行ずつデバッグですかね
    一応余裕があれば自分も検証してみますが・・・

    トピック投稿者 gapel

    (@gapel)

    nobita様、ありがとうございます。

    spanタグを入れていますが、ここにvisibility:hiddenか、display:noneでリンク文字列を非表示にします。
    
    背景画像は、.page-item-2などのクラスを使って背景を表示させます。

    visibility:hidden方式とのことですが、これもテキストを非表示にするわけなので、結局はGoogleの検索エンジンスパムと判定されることはないでしょうか?
    グローバルナビゲーションをテキストで表示させているのに、それを見えなくしている方法ですと、圏外に飛ばされた経験があるのでとても慎重になっております。

    これまではこのようなことがあるので、あえてグローバルナビゲーションはimgタグで画像を表示させていました。
    大企業サイトも、スパムがあるのでテキストをマイナスインデントして見えなくしたり、または非表示にしたりという方法はとらず、li タグを記載し、その中にimgタグでナビゲーション画像を表示させているものが多い気がしておりまして。
    問題なければ是非試したいのですがこういった事情がありまして。

    トピック投稿者 gapel

    (@gapel)

    CyberCypher様、ありがとうございます。

    wordpressのテーマ配下にいるなら大丈夫だとは思うのですが
    テーマ配下外の階層にいると上手く認識しないのだと思います
    ループの中だから使えない・・・というわけではないので

    はい、その通りです。hdr.phpはマイテーマの直下に配置させております。

    確認のために上のコードは一旦バックアップしてでも置いといて
    全部削除しちゃっても良いんで一つずつ確認しましょう
    <?php echo broginfo(‘template_directory’); ?>
    でテンプレートの階層が取得できるか
    出来るなら問題は別の所にあると思われるし
    出来ないのなら階層がおかしいのだと思われる

    hdr.phpに記載した、いただいたソースの部分を全て消しまして、そこに代わりに
    <?php echo broginfo(‘template_directory’); ?>
    とだけ記載しました。あとの前後のもとからあるソースはそのままで。
    すると以下のエラーメッセージが出kました。

    Fatal error: Call to undefined function broginfo() in /www/myserveracount/mysite.jp/wp-content/themes/mytmpl/hdr.php on line 27

    27行目は
    <?php echo broginfo(‘template_directory’); ?>
    でした。

    まずは命令が上手く仕えているかどうか1行ずつデバッグですかね
    一応余裕があれば自分も検証してみますが・・・

    なるべく自分でおこないますが、本当にありがとうございます。

    本ファイル(hdr.php)はテンプレートフォルダ直下に配置させているのにエラーが出るというのはどうなっているのかなぁ・・・
    ちなみに、hdr.phpは以下の内容を記載しております。

    <body>

    </div>
    <!–/GLOBAL NAVIGATION–>

    念の為確認ですが、ファイルの冒頭に何か記述が必要なことはないでしょうか。
    現在のhdr.phpは上述の通り、HTMLのソースからいきなり記述しているだけの、本当にHTMLのナビゲーション部分を外部ファイル化させただけのものです。
    main.php(トップページのテンプレートファイル)の中で、
    <?php include (TEMPLATEPATH . “/hdr.php”); ?>
    と記述して呼び出しております。

    でも実はHTMLの記載をする前に、何かお約束のコードが要るなどということはないでしょうか。
    それが原因で本件の問題が起きているとか。

    例えばsingle.phpなら、冒頭に
    <?php get_header(); ?>
    と入っていますし、

    自分で新たに作ったテンプレートファイルであれば、冒頭に
    <?php
    /*
    Template Name: category-product
    */
    ?>
    <?php get_header(); ?>
    などとと入っていたりします。

    テンプレートファイルでもないただの外部ファイルなので見当違いだとは思いますが・・・

    モデレーター gatespace

    (@gatespace)

    こんにちは。
    1点だけ
    broginfo() ではなく bloginfo() です。
    http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/bloginfo

    ぁぅごめんなさい、全然気付かなかったスペルミス恥ずかしい
    フォローありがとうですgatespaceさん

    トピック投稿者 gapel

    (@gapel)

    とんでもございません。当方も全く気づきませんでした。
    bloginfo()に変更してみましたところ、少々動きがありました。
    サイトをのトップページを開いて、グローバルナビゲーションエリアを見てみると、以下のように表示されました。

    http://mysite.jp/wp-content/themes/mytmpl

    これは正常ということでしょうか。

    それから続けて、スペルが違っていたということで、本来いただいたソースの方も、スペルを修正して試してみました。
    すると、こちらも動きがありました。
    ナビゲーションエリアに以下のようなソースが出たあと、改行されて、ナビゲーション画像が出現もするようになったのです。
    ナビゲーション画像はマウスオーバーしても変わらずマウスアウト画像のままになっており、
    また、ナビゲーションボタンをクリックした先のページも同じ表示になっていました。

    http://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://mysite.jphttp://xn--
    
    mysite.jphttp://mysite.jp
    http://mysite.jp

    サイトのURLがこのように繰り返し表示されてしまうようです。

    あとは、いただいたソースをいったん削除し、ソースの一行目から記載しては表示させてどう表示されるかをチェックするのですよね。

15件の返信を表示中 - 1 - 15件目 (全21件中)
  • トピック「外部ファイル化したヘッダーナビゲーションが機能しない」には新たに返信することはできません。