header.php の <head>〜</head>
内に以下を追加。
<?php
if(is_page('123')) : // 123はページID。ページスラッグでもタイトルでもOK
?>
<script type="text/javascript">
//<![CDATA[
// ここにスクリプトを記述
//]]>
</script>
<?php
endif;
?>
ちなみに
body内に記述した場合あるブラウザでは見れない
どのブラウザですか?
kzさん
返信ありがとうございます。
こういうやり方があるのですね。
ちなみによろしければ教えていただきたいのですが、
header.phpに上記の記述を複数していった場合、
ページの読み込み速度は遅くなりますでしょうか。
なお、ブラウザについては聞いただけの話なので検証してみました。
話しではIEにエラーが出るということでしたが、
特に問題なく表示されました。。(どうもv2の話しのようですね)
余計な手間を取らせました、申し訳ないです。
補足:「ページ」でなくて「投稿」の場合は is_single() を使います。
参照)条件分岐タグ
header.phpに上記の記述を複数していった場合
if(is_page('123'))
などの分岐処理を増やして・・・
==>ページに出力するスクリプトを切り替えるだけなら、
サーバーでの処理なのでほとんど遅くならないはずです。
==>ページに出力するスクリプトを増やすなら、
その量に応じて遅くなると思います。
※Firefox で Firebug+YSlow を使うとパフォーマンスを計測できます。
速度が気になるなら、スクリプトを
・</body> の前に出力
・直接出力でなくて .js ファイルを読み込む
などすると良いと思います。
if での条件分岐でなく、カスタムフィールドを使う方法もあります。
ページ/投稿のカスタムフィールドに、例えば、名前「script」値「maps」を追加して
</body> の前(footer.php)に以下のように記述すると
カスタムフィールドの値に応じたスクリプトを読み込むことができます。
<?php
$scripts = get_post_custom_values('script');
if(!empty($scripts)) :
if(in_array('maps', $scripts)) : // 値が「maps」の場合
?>
<script src="http://maps.google(略)" type="text/javascript"></script>
<script src="<?php bloginfo('template_url') ?>/my_gmaps.js" type="text/javascript"></script>
else :
if(in_array('news', $scripts)) : // 値が「news」の場合
//
endif;
endif;
?>
kzさん
返信ありがとうございます。
詳しく説明していただいたおかげでよくわかりました。
また、ページの読み込み速度についてもアドバイスありがとうございます。
phpやjsが絡んだ場合の速度について全く理解していないので、
教えていただいたYSlowで試しながら確認したいと思います。
おかげさまで自分の中での問題は無事解決できました。
良い気分で2009年を終えることができそうです(笑)
ありがとうございました。