サポート » 使い方全般 » 単一ページの<head>内にスクリプトを入れたいのですが…

  • 解決済 otani

    (@otani)


    ある記事ページの<head>~</head>内だけにスクリプトの記述をしたいのですが、これは可能でしょうか。google maps api v3を使おうとしてるのですが、body内に記述した場合あるブラウザでは見れないと聞いたので困っております。

    お分かりになる方がいらっしゃいましたら、教えてください。
    よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • kz

    (@kz)

    header.php の <head>〜</head> 内に以下を追加。

    <?php
    if(is_page('123')) : // 123はページID。ページスラッグでもタイトルでもOK
    ?>
    <script type="text/javascript">
      //<![CDATA[
        // ここにスクリプトを記述
      //]]>
    </script>
    <?php
    endif;
    ?>

    ちなみに

    body内に記述した場合あるブラウザでは見れない

    どのブラウザですか?

    otani

    (@otani)

    kzさん

    返信ありがとうございます。
    こういうやり方があるのですね。

    ちなみによろしければ教えていただきたいのですが、
    header.phpに上記の記述を複数していった場合、
    ページの読み込み速度は遅くなりますでしょうか。

    なお、ブラウザについては聞いただけの話なので検証してみました。
    話しではIEにエラーが出るということでしたが、
    特に問題なく表示されました。。(どうもv2の話しのようですね)
    余計な手間を取らせました、申し訳ないです。

    kz

    (@kz)

    補足:「ページ」でなくて「投稿」の場合は 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;
    ?>

    otani

    (@otani)

    kzさん

    返信ありがとうございます。
    詳しく説明していただいたおかげでよくわかりました。

    また、ページの読み込み速度についてもアドバイスありがとうございます。
    phpやjsが絡んだ場合の速度について全く理解していないので、
    教えていただいたYSlowで試しながら確認したいと思います。

    おかげさまで自分の中での問題は無事解決できました。
    良い気分で2009年を終えることができそうです(笑)
    ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「単一ページの<head>内にスクリプトを入れたいのですが…」には新たに返信することはできません。