Concrete5で$this->inc()を使うとエラー failed to open stream が発生する場合

Concrete5タイトル

Concrete5のテーマ作成時、パーツを $this->inc() で読み込むことがよくあります。しかし failed to open stream: No such file or directory エラーとなることがあります。特にテーマ作り始めのころによく引っかかります。

このエラーの場合、テーマハンドルにハイフンや空白が入っていないかを確認して下さい。アンダースコアは使用できます。

✕ theme-aaa

○ theme_aaa

✕ theme abc

○ theme_abc

ファイルがしっかり存在しているのにエラーになる場合、このハンドル名が規約にそっていない場合がほとんどです。見分け方は、

Warning: include({concrete5インストールディレクトリ}/concrete/themes/theme-aaa/elements/header_home.php)

のように、 {concrete5インストールディレクトリ}/themes ではなく、concreteディレクトリを読みに行っている場合は怪しいです。