子テーマを導入しているサイトの話なのですが、同じく子テーマ内に設置したPHPファイルをインクルードしようとしたところ、何故かPHPファイルが正常にインクルードされませんでした。
色々と調べて解決したのですが、かなり時間を要してしまいました。
同じような悩みを抱えている方のため、私のたどり着いた解決策を書き残しておきます。
インクルードに関する詳しい説明は、以下のコンテンツを参照してください。
[ryus_blogcard url=”https://takayakondo.com/wordpress-php-include/”]
子テーマのインクルードには「STYLESHEETPATH」を使う
下記のコードは、テーマに設置した【test.php】をインクルードするためのコードです。
<?php include( TEMPLATEPATH . '/test.php' ); ?>
普通なら上記のコードを記述することで、【test.php】をインクルードしてくれます。
子テーマの場合は、【test.php】をインクルードしてくれません。
なぜ子テーマの【test.php】がインクルードされないのでしょうか?
この部分でかなり時間を浪費してしまいました。
答えは簡単で【TEMPLATEPATHが親テーマのパスを読み込んでいる】からでした。
子テーマの中にある【test.php】を読み込むのではなく、親テーマの中にある【test.php】をインクルードしようとしているわけです。これでは、どうしたって子テーマの【test.php】がインクルードされることはありません。
子テーマの【test.php】をインクルードする時は、【TEMPLATEPATH 】ではなく【STYLESHEETPATH】を使用するのが正解です。
<?php include( STYLESHEETPATH . '/test.php' ); ?>
上記のように記述してやれば、子テーマの中にある【test.php】をインクルードしてくれます。
まとめ
子テーマに設置したファイルをincludeする方法をご紹介しました。
【TEMPLATEPATH 】は親テーマのファイルをインクルードするので、子テーマでは【STYLESHEETPATH】を使うんですね。
勉強になりました。
コメントを残す