• 解決済 skunk0915

    (@skunk0915)


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

    WordPressサイトでブログ記事を表示する場合にpage-blog.phpテンプレートを使用しているのですが、それ以外の場合(ブログ記事表示時以外)にlogin.phpを読みこませようとしています。

    </body>の直前に読み込ませたいのでfooter.php内に以下のコードを記述しました。

    <?php
    wp_reset_query();
     if(!is_page_template('page-blog.php')): ?>
    <?php get_template_part('login'); ?>
    <?php endif; ?>

    page-blog.php自体は読み込んでいるんですが、if文が機能していないようで常にlogin.phpが読み込まれます。

    WordPress Codexではfooter.php内に条件分岐を書くとエラーになりやすいということだったので、wp_reset_query();を足しましたが結果は変わりません。

    ちなみにこのコードでis_page_template()ではなくis_home()やis_page()を指定した場合は意図した結果が返ります。

    簡単にできると思っていたところでつまづいてしまっているのですが、誤りがあればご指摘いただけないでしょうか。

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

    page-blog.phpを読み込んだ場合には、ログインテンプレートを読み込まないで、それ以外の時には、ログインテンプレートを読み込む

    という事であれば、if文による条件分岐は、必要ないと思います。

    例えば、page-blog.php

    の、get_footer(‘nostuff’) として、ログイン画面をインクルードしない、テンプレートパートファイル footer-nostuff.phpを追加すればいいのではないかと、思います。

    footer.php

    <?php get_template_part('login'); ?>

    試してないので、間違いがあったらごめんなさい。

    ( それか、index.phpから、get_template_part(‘login’);を使ったほうが、後々わかりやすいかも )

    テンプレートタグが挙動不審であるという件については、

    This tag must be used BEFORE The Loop and does not work inside The Loop (see Notes below).

    http://codex.wordpress.org/Function_Reference/is_page_template

    を参考に

    トピック投稿者 skunk0915

    (@skunk0915)

    こんにちは。
    …えっと 本当にすみません。
    footer();の使い分けで実現できました。

    実はこの方法は一番最初に思いついた(ページテンプレートを使い分けているのでその応用でできるかもと思った)んですが、一度試してできず、検索で調べてやっぱできないのかと認識して条件分岐しかないんだなといういきさつがあったんですが…今言われて「えっ?」と思ってもう一度やったらできました…どうもこの一連の流れが完全な思い込みだったようで…間抜けすぎる…。

    こんな単純なことで質問して失礼いたしました。
    また、そんな質問にも丁寧にお答えいただき誠にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「特定のページテンプレートのみで読み込む」には新たに返信することはできません。