Drupal 7モジュールをビルドして、オーダーメイドのフィールドタイプを作成しています。必要なフックをすべて実装しました。私のhook_field_formatter_view()
機能は次のようになります:
function MYMODULE_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
switch ($display['type']) {
case 'default':
foreach ($items as $delta => $item) {
$element[$delta] = array(
'#theme' => 'test',
'#item' => $item,
);
}
break;
}
return $element;
}
次に、theme()
以下の関数を定義しました。
function theme_test($variables) {
return '<h1>Hello World</h1>';
}
しかし、ページを表示しても何も出力されません。最近のログエントリを見ると、次のメッセージが表示されます。
Theme key 'test' not found.
MYMODULE_field_formatter_viewレンダー配列「#theme」の値を「item_list」のような組み込みのテーマ関数に変更すると、機能します。しかし、なんらかの理由で、カスタムテーマ関数が取得されていません。
テーマレジストリを何百回も再構築し、キャッシュをクリアしました。