2

Drupal 7 が画像に付けた自動属性を削除するにはどうすればよいですか?

4

1 に答える 1

13

Drupal 7 ではhook_preprocess_image()、テンプレート ファイルを使用するものだけでなく、すべてのテーマ関数に対して前処理関数が実行されるため、実装するだけで済みます。あなたの場合、次のコードで十分です。

function mymodule_preprocess_image(&$variables) {
  foreach (array('width', 'height') as $key) {
    unset($variables[$key]);
  }
}

$variables['attributes']画像属性も含まれているため、次のコードはより完全です。

function mymodule_preprocess_image(&$variables) {
  $attributes = &$variables['attributes'];

  foreach (array('width', 'height') as $key) {
    unset($attributes[$key]);
    unset($variables[$key]);
  }
}

mymoduleをモジュール/テーマの短い名前に置き換えます。

テーマ関数/テンプレート ファイルに渡される変数を変更する必要がある場合は、前処理関数を使用することをお勧めします。テーマ関数は、返される出力を変更する必要がある場合にのみオーバーライドする必要があります。この場合、変数を変更するだけで済み、テーマ関数をオーバーライドする必要はありません。前処理フックを使用すると、コードは将来の Drupal バージョンと互換性があります。

于 2012-05-29T18:56:32.390 に答える