gotohayato.com

moon indicating dark mode
sun indicating light mode

Drupal 7 で theme.inc で発生する Fatal error の対処方法

2016/10/07Drupal 7

Drupal 7 で次のようなエラーに遭遇することがあります。

Fatal error: Unsupported operand types in /PATH/TO/DRUPAL_ROOT/includes/theme.inc on line 637

原因

問題の原因は関数 _theme_process_registry() の中で連想配列とその他の何か(たいてい NULL )の加算が行なわれていることです。 そしてそれが起こるのは hook_theme() の戻り値が正しく指定されていないことが原因です。

次のような hook_theme() を書いていると発生します。

function mymodule_theme($existing, $type, $theme, $path) {
$themes = array(
'special_element' => array(
'variables' => array(
'something_special' => NULL,
),
),
);
);

対策

hook_theme() の戻り値を正しく指定します。 上の例でいえば return $themes を追加すれば OK です。

function mymodule_theme($existing, $type, $theme, $path) {
$themes = array(
'special_element' => array(
'variables' => array(
'something_special' => NULL,
),
),
);
return $themes;
);

私は return をつい書き忘れて数ヶ月に一度は遭遇します。


後藤隼人
ウェブサイト制作・ウェブアプリ開発やマーケティングをしています。
GitHub
© 2020 gotohayato.com
サイトについてタグアーカイブメッセージを送る