こんにちは。
<?php if(in_category('16'))
{ include (TEMPLATEPATH . './header_cat16.php '); return; }
?>
などの読み込みの指定についてですが、主に問題となっているのは、 ‘./header_cat16.php’ のファイルパス文字列先頭の . だと思われます。
<?php if ( in_category(16) ) include TEMPLATEPATH . '/header_cat16.php'; ?>
などのように ./ を / へ変更してみてください。あと気になるのは、 in_category() が条件分岐タグとして妥当かどうかですね(これは使用するケースによると思います)。
これはheader.phpにheader_cat1.phpなどを読み込もうとなされてるんでしょうか???
それならばheader_cat1.phpに
<?php
/**
* @package WordPress
* @subpackage Default_Theme
*/
get_header();
?>
の記述は共食いになっていると思います。
あ、ほんとだ! むしろそれが原因ですね。私の回答はスルーしてください……
あ、mizubeさんがご指摘のところもTEMPLATEPATH(←末尾にスラッシュなし)という定数が当てられているので問題になると思います。include (TEMPLATEPATH.'/./header_cat1.php')
なら(偶然?)いけるかもしれません(今まで何気なく使っていたので自信ないですが)。
mizubeさま akihiroさま
こんにちは。
早速のご返答ありがとうございます!!!
昨日ご返答頂き、こちらでご指摘箇所を修正してみたのですが
やはり動きません。。。(初心者すぎてすみません。。)
修正後、反映先ページのソースを表示させると
見事ヘッダー部分の記述が抜けていました。
ちなみに、昨日ご教授頂いた後のWordPressのテンプレートです。
引き続きお助けいただけると幸いです。
ヘッダー.php
========================================================================
<?php
/**
* @package WordPress
* @subpackage Default_Theme
*/
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” <?php language_attributes(); ?>>
<?php if(in_category(’16’))
{ include (TEMPLATEPATH. ‘/header_cat16.php ‘); return; }
?>
<?php if(in_category(‘1’))
{ include (TEMPLATEPATH. ‘/header_cat1.php ‘); return; }
?>
<head profile=”http://gmpg.org/xfn/11″>
<meta http-equiv=”Content-Type” content=”<?php bloginfo(‘html_type’); ?>; charset=<?php bloginfo(‘charset’); ?>” />
<title>タイトル</title>
〜〜〜〜〜〜〜〜〜〜
========================================================================
header_cat1.php
========================================================================
<head profile=”http://gmpg.org/xfn/11″>
<meta http-equiv=”Content-Type” content=”<?php bloginfo(‘html_type’); ?>; charset=<?php bloginfo(‘charset’); ?>” />
<title>タイトル</title>
〜〜〜〜〜〜〜〜〜〜
========================================================================
akihiroさまにご返答いただきました
include (TEMPLATEPATH.’/./header_cat1.php’)も一度試してはみたのですが
どうにもうまくいきませんでした。
どうかお力添えを頂戴できますでしょうか。
よろしくお願いします!!
試していないのでなんともいえませんが、インクルードする前にちゃんと機能しているか試してみてはいかがですか?
<?php
/**
* @package WordPress
* @subpackage Default_Theme
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
<?php if(in_category('16'))
{ echo "カテゴリー16"; }
?>
<?php if(in_category('1'))
{ echo "カテゴリー1"; }
?>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<title>タイトル</title>
この状態でヘッダ部分に文字が表示されることが確認できたらインクルードを試せばよいと思います。
文字が表示されない場合は分岐が間違っている(表示しているページでカテゴリーIDをちゃんと認識していないなど)、表示される場合はインクルードに問題があるのでしょう。(passの違いかファイルの記述ミスか)
いっぺんに行わずに問題の切り分けを行いながら挑戦しましょう!
shokun0803さま
こんにちは。
早速お返事いただいていたにも関わらず御礼が遅くなりました。。。
さて、ご指摘いただいたとおり一度原点に返り
普通に(なにも指示はせずプレーンな状態)表示させてみました。
これは、自分の思い通りの表示をしてくれます。
しかし、ご教授頂いた
<?php if(in_category(’16’))
{ echo “カテゴリー16”; }
?>
<?php if(in_category(‘1’))
{ echo “カテゴリー1”; }
?>
を入れてみても、カテゴリーごとに表示が変わりませんでした。。。
分岐が間違っているというご指摘をいただいていましたが
この場合はどういった対処法があるのでしょうか?
検索してみたりしたのですが。。。
何卒お力添えをお願いいたします!!
ページのソースはご覧になりました?
<head profile="http://gmpg.org/xfn/11">
の上に、「カテゴリー16」や「カテゴリー1」と書かれていませんか?
shokun0803さま、LVP8さま
初心者すぎて本当にすみません!!
ご回答に感謝いたします。
先ほど、header.phpに
<?php if(in_category(’16’))
{ echo “カテゴリー16”; }
?>
<?php if(in_category(‘1’))
{ echo “カテゴリー1”; }
?>
を設定するとページ上部に「カテゴリー16」「カテゴリー1」の表記がありました!!
これで、呼び出しは出来ているという事なのでしょうか?
このタグをインクルードに変えれば良いのですよね。。
を設定するとページ上部に「カテゴリー16」「カテゴリー1」の表記がありました!!
カテゴリー16の記事を見ている時にカテゴリー16の表記がありますか?まさかと思いますが、全てのページでカテゴリー16カテゴリー1と表示されたりはしていませんよね?
まあ、上記前提ですが、これで分かったことは分岐方法は間違っていない、と言うことだけです。つまり、最初に提示しているコードのインクルードもしくはインクルードされているファイルに問題があることが「切り分けられた」に過ぎません。
次のステップはインクルードするファイルの中身をごく簡単な物、例えば
echo "カテゴリー16のインクルードファイル";
だけのファイルにして表示されるか確認してみましょう。また、インクルードしようとしているURLの場所にファイルがない可能性も調査しましょう。
<?php if(in_category('16'))
{ echo TEMPLATEPATH. '/header_cat16.php '; }
?>
とした時に表示されるURLが実際に表示させたいURLになっているか確認するといいかもです。
‘/header_cat16.php ‘
に余計なスペースが入っているのも問題かもしれません。スペースを取り除いて’/header_cat16.php’にしましょう。以下のコードはサンプルです。
header.php
<?php
/**
* @package WordPress
* @subpackage Default_Theme
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
<?php
if(in_category('16')){
include (TEMPLATEPATH . '/header_cat16.php');
}elseif(in_category('1')){
include (TEMPLATEPATH . '/header_cat1.php');
}
?>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<title>タイトル</title>
header_cat1.php
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<title>タイトル</title>