質問: entity_load(arg(0), array(arg(1))); } これはほとんどの場合機能しますが、(分類用語のように)機能しない場合もあります。その上、データベースへの別の呼び出しを行うため、これは本当に厄介です。これを行うより良い方法はありますか?
回答: 入力フィルターには、レンダリングのために呼び出されるエンティティを取得する方法がありません。実際には、エンティティがまったく関与していない状況でも、入力フィルターを呼び出すことができます。たとえば、viewsモジュールではビューのヘッダーを設定でき、次のオプションを提供します。global:text areaを選択した場合、次のオプションは次のオプションです。この場合に入力フィルターが呼び出されると、ビューのヘッダーに関連付けられたエンティティはありません。 menu_get_object()を使用すると、おそらく間違ったエンティティが取得されるか、エンティティがまったく取得されません。 menu_get_object()で正しいエンティティを取得するには、表示されたページに関連付けられているエンティティと、エンティティidがurlに格納されている場所を知る必要があります。一般的なガイドラインとして、入力フィルターは、ユーザーからの入力として取得したテキストをレンダリングするために使用される可能性があるため、それらの使用方法について想定するべきではありません。 viewsモジュールから使用されるビューのヘッダーは単なる例ですが、別のモジュールが同じメソッドを使用するのを妨げるものはありません。