WordPress5.5から、テンプレート読み込み関数でテンプレートファイルがないとき、戻り値(false)を返すようになりました。
修正はif文を追加するだけです。
いままでテンプレート読み込み関数は、テンプレートファイルがないとき何もしない仕様でした。
(エラーにもならない。)
それだとデバッグが困るということで、WP5.5からテンプレートファイルがないときにfalseを返します。
(それ以外はvoid(戻り値なし)。つまり今までと同じ。)
内部でlocate_template()を使っている関数すべてが対象です。
関数 | テンプレート |
---|---|
get_header() | header.php |
get_footer() | footer.php |
get_sidebar() | sidebar.php |
get_template_part() | 任意のテンプレート |
WordPress.orgリファレンス
使い方も簡単です。テンプレートファイルがなかった時の処理を追加しましょう。
<?php if ( false === get_template_part( 'templates/test', 'test' ) ) { ?>
<div>ここにデフォルトテンプレートを書く</dvi>
<?php } ?>
デフォルトテンプレートを書かないといけないことはありません。何かしらの処理を書きましょう。
ほかの関数も使い方は同じです。
大事なことをもう一つ。falseの比較は '===' を使います。'==' ではダメ。
テンプレートファイルがあるときvoidの戻り値を返しますが、ざっくりとした比較ではfalseと同値になるので必ず厳密な '===' を使いましょう。
(テンプレートファイルが読み込めたのにfalseと判断してしまう。)