template_preprocess_field() フックを実装したサイトで作業しています。フィールドのコンテンツを変更したいのですが、カスタムテンプレート(node--emploi.tpl.php
)を持つコンテンツタイプのノードを除くすべてのノードでコードが機能します。コンテンツのノードに別のテンプレートがあるため、奇妙ですtarif(node--tarif.tpl.php
)という名前のタイプ。この場合、フックが呼び出されます。
テンプレートnode--emploi.tpl.phpファイル内のコード:
<div class="editor">
<?php
/* At this point the body's h2 do not know what the nid is, so a quick and dirty replace will set it right. */
print preg_replace('/NO-NID[a-z0-9]*--/', $nid . '--', check_markup($field_stm_emploi_temoignage_body[0]['value'], $field_stm_emploi_temoignage_body[0]['format']));
?>
</div>
@ Clive によると、問題はコードがフィールド出力にrender()
関数を使用しなかったことであり、この場合は template_preprocess_field() ですフックは呼び出されません。
現時点では、2つの解決策があります。
$vars['type']
を確認します。この場合、テンプレートファイルは同じままです。