サポート » 使い方全般 » テンプレートによってスタイルシートを使い分けたい

  • お世話になります。

     3カラムのページを作っていてセンター、右サイドのテンプレートが複数あり
    特定のテンプレートが読み込まれたときにスタイルシートを変更しようとして
    いるのですがうまくいきません。

     参考にしたHPでは「is_page」を使用していたので「is_page_template」を
    使用してみたのですがダメでした。

    スタイルシートは「function.php」にまとめて記述しています。

    http://pastebin.com/Byi6nMff

     「is_page」や「is_category」ではうまくいったのですが「is_page_template」の
    場合はvar_dumpをしてみてもnullしか返ってこないので判定していないようです。
    この書き方では「is_page_template」で判定はできないのでしょうか?

     もしこの方法ではできないのであればなにかこれに代わる方法をアドバイス頂けると助かります。

     どうぞよろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは、

    「is_page」や「is_category」ではうまくいったのですが「is_page_template」の
    場合はvar_dumpをしてみてもnullしか返ってこないので判定していないようです。

    is_page_template の引数に、テンプレート階層のファイル名が指定されていますが、

    訂正:あ、違いますかね

    固定ページテンプレートを使っていますよね。

    /**
     * Template Name: Front Page Template
     *
     */

    それ以外にも、global 変数でも テンプレートの判別が出来ると思いますので
    試してみてください

    function load_stylesheet() {
     global $template;
            /* スタイルシート登録関数を実行させる */
            register_stylesheet();
    //$templateには、テンプレートのパスが入っているので、
    
    $base_name = basename( $template, '.php' );
    
    if( 'content-sp' == $base_name ) {
    
    }

    みたいな感じで、条件を分けることが出来るかもしれません。(未テスト)

    トピック投稿者 rad2009

    (@rad2009)

    nobitaさん

    お返事が大変遅くなり申し訳ありません。
    自分とその周囲がちょっとバタついておりゆっくり画面の前に座っていられない状態が
    続いていたので遅くなりました。

    アドバイス、ありがとうございます。
    テンプレート名も取得でき私のやりたかったことが出来ました。

    「is_page」や「is_category」でそのままうまくいっていたのでテンプレート名もそのまま
    何もせずにグローバルな値として取れるものと思っていました。
    まだまだ勉強がしないといけませんね。

    ところで、今回はテンプレート名を取得するときに思ったことがあるのですが、
    「global $template」で取れるのは一つのようですが複数のテンプレート名を同時に取得
    することはできないのでしょうか?

    ネット上で調べてはみたのですが独自にPHPでテスト用に作られている方はいらっしゃった
    のですがあくまでテスト用なので</body>直前あたりに取得プログラムを配置しないと
    取得できないなど実際の運用面では使用はできなさそうでした。

    複数のテンプレート名の取得が必要になる場面もあるかと思いますのでもし方法がある
    ようであれば今後に役立てたいと思いますのでご教授いただければと思います。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「テンプレートによってスタイルシートを使い分けたい」には新たに返信することはできません。