サポート » テーマ » インクルードしたファイル内でテンプレートタグを有効にしたい

  • 解決済 eighty8sign

    (@eighty8sign)


    お世話になります。

    自作のテーマの中に、さらにサブテーマをつくり、
    その中でテンプレートタグを使用したいと思っています。

    /wp-content
      /themes
        /demo ←自作テーマ
          /subthemes ←サブテーマディレクトリ
            /include ↓インクルードファイル
              + template_main.php
              + template_header.php
              + template_footer.php
          + page_default.php
          + header.php
          + footer.php
          + etc ・・・

    現在、このような構成で、demo 配下にある page_default.php のある部分で、
    include(includeのディレクトリパス . ‘template_main.php’);
    といった感じでtemplate_main.phpを読み込んでいますが、
    template_main.php に記述したテンプレートタグが機能しません。
    たとえば、ループを使い the_conent() で内容を吐き出したいのですが、
    何も表示されません。
    ためしに query.php の have_posts() に文字列を print させましたが、
    そもそも have_posts() も呼ばれていないようでした。

    インクルードしたファイル内でテンプレートタグを有効にするにはどのようにしたら
    いいのでしょうか?
    お分かりになる方がいらっしゃいましたら、是非ご教授下さい。
    宜しくお願い致します。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • include したから使えないってことはないと思うのですが、page_default.php 内ならテンプレートタグが使えるのですか?

    スレッド開始 eighty8sign

    (@eighty8sign)

    お返事ありがとうございます!

    私も同様に考えていたのですが、単純ではありませんでした。。。
    page_default.phpからは問題なく使えます。

    引き続き、何かお分かりになりましたら、宜しくお願いします!

    となると、includeしている中身に問題はありませんか?
    ソースがどうなっているかわからないので、これ以上はなんともいえません。

    スレッド開始 eighty8sign

    (@eighty8sign)

    kvex様

    またまた、ご返答ありがとうございます。
    コードの一部抜粋をご紹介させていただきます。

    【呼び出し側(page_default.php)】

    <?php get_header(); ?>
    
    $tpl = trace_mobi_templates();
    include($tpl['main']);
    ↑ここには/wp-content/themes/demo/include/template_main.phpへのパスが入る
    
    <?php  get_footer(); ?>

    【include側(template_main.php)】

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <?php
    $subNavi = wp_list_pages('sort_column=menu_order&exclude=' . setting_pages_id("sub") . '&title_li=');
    $subNavi = parse_html_after_replace_for_menu($subNavi, "sub");
    
    $contentStr = get_the_content();
    $contentStr = str_replace("<dl>", "<p>", $contentStr);
    $contentStr = str_replace("<h3>", "<p><font size=\"-1\">", $contentStr);
    $contentStr = str_replace("</h3>", "</font></p>", $contentStr);
    $contentStr = strip_tags($contentStr,'<a><p><br><font>');
    ?>
    
    <br>
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td bgcolor="#000000"><font size="-1" color="#FFFFFF">コンテンツ</font></td>
      </tr>
    </table>
    
    <font size="-2">
    <?php echo $subNavi; ?>
    </font>
    <br>
    
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td bgcolor="#000000"><font size="-1" color="#FFFFFF"><?php the_title(); ?></font></td>
      </tr>
    </table>
    
    <font size="-2">
    <?php echo $contentStr; ?>
    </font>
    
    <?php endwhile; ?>
    <?php endif; ?>

    include側の処理は、page_default.phpに記述していたもので、元に戻すと
    問題なくコンテンツは表示されます。

    こんにちは、

    ↑ここには/wp-content/themes/demo/include/template_main.phpへのパスが入る

    このパスは、

    include("subthemes/include/template_main.php");

    のようにすれば、どうですか?

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「インクルードしたファイル内でテンプレートタグを有効にしたい」には新たに返信することはできません。