月: 2026年8月

子テーマテンプレートで親テーマにあるphpのincludeが行われない

子テーマでテンプレートのphpを修正する場合に、親テーマにある部品phpのincludeが行われない

→inludeをget_template_part関数に変更

※このサイトは「EASEL」というテーマを使用させていただいております。
作品ページ「single-works.php」に修正を入れるにあたり、このphpをコピーして子テーマにアップロードすると、
ページネーション部分(改ページ(nextpage)を入れている場合に1、2、…と出る部分)が出なくなる問題がありました。

当該箇所は以下のように書かれています

include( 'library/parts/pagination.php' );

上記は親テーマの場合は正常に動作しますが、子テーマでは上記パスにファイルがないため正しくincludeされないという動作になります。
これの解決方法については、パスを通すために手前に「TEMPLATEPATH」をつける(親側にincludeしたいものがあるとき)とか「STYLESHEETPATH」をつける(子側にincludeしたいものがあるとき)というような対応でもよいようですが、
get_template_part関数を使えば、子テーマにあればそのテンプレートを、子にない場合は親のテンプレートをとるという動作になるようです。

具体的には以下のように書き換えて正常動作しました。「.php」の部分だけ外すイメージです。

get_template_part( 'library/parts/pagination' );

送信中です

×