サポート » 使い方全般 » header.php内の条件分岐内でヒアドキュメントを使いたい

  • 解決済 spicablue

    (@spicablue)


    いつもお世話になります。

    header.phpの<head></head>内で、固定ページや投稿などで条件分岐をして
    ページ毎に違うjsやCSSを読み込めるように記述しています。

    通常は、このように書いています。

    if ( is_page(‘campaign’) ){
    echo ‘<link type=”text/css” rel=”stylesheet” href=”‘.get_bloginfo(‘template_url’).’/css/campaign.css” media=”screen,print” />’;
    }

    が、行数が増えてきて、scriptの記述をしていると煩雑になってきたため、ヒアドキュメントにしたところ、WordPressで表示できないエラーとなりました。

    if ( is_page(‘inquiry’) ){
    echo <<< EOM
    <script type=”text/javascript” src=”//ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools-yui-compressed.js”></script>
    <script type=”text/javascript”>
    $(function() {
    $(“form”).wpcf7-form({imgPath:”images/jqtransform/”});
    });
    </script>
    EOM;
    }

    echo ' ';」で1行ずつ出力していたときは表示されていたものです。
    上記ソースを変数に入れておき、条件分岐内で変数を出力することも試しましたが、結果は同じでした。

    PHPはWordPressでしか書いたことがないため、基本的に間違っているのかもしれません。
    どうぞよろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 出力されるような気もしますが、エラー内容くらいは書きましょう。
    エラーが表示されない場合はデバッグモードを有効にしてください。

    有効にするとエラーがどこで発生しているか、どのようなエラーか表示されるはずなのでまずは検索エンジンなどでご自分で調べてみてください。

    トピック投稿者 spicablue

    (@spicablue)

    説明不足ですみません。
    エラーは、

    Parse error: syntax error, unexpected T_SL in /exsample/wp/wp-content/themes/exsample/header.php on line 149

    で、149行目は「echo <<< EOM」の行です。

    EOM〜EOM;の中に何も書かなくても、同じエラーが出ているので、
    そもそも条件分岐内でヒアドキュメントが使えないのかなと考えています。

    検索して出てきたのがこういう方法なのですが
    http://okwave.jp/qa/q7446139.html
    私は、条件分岐内にHTMLを書きたいので、
    やりたいことが逆?のような感じで
    頭がこんがらがっています。

    提示されたページではヒアドキュメント内で条件分岐したいって要件なので条件分岐内でヒアドキュメントを使うとは確かに意味が違いますね。
    エラーは単なる構文エラーに見えますが。エラー行数あたりを見直すとよいと思いますよ。

    トピック投稿者 spicablue

    (@spicablue)

    構文エラーでした。
    echo <<< EOM」の行および
    EOM;」の行を
    タブで下げていました。

    PHP記述の基本的ミスでした。すみません。
    (参考:http://ecdaa.com/heredocument/)

    Tsuyoshi.さん、ありがとうございました!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「header.php内の条件分岐内でヒアドキュメントを使いたい」には新たに返信することはできません。