web-dev-qa-db-ja.com

Display Suiteはhook_preprocess_node()を無視します

Display Suiteモジュールはhook_preprocess_node()hook_process_node()を完全に無視しているようです。これは事実ですか?

もしそうなら、すべてのノード変数にアクセスできるように、最終的なレンダリングに小さな変更を加える方法は何ですか?

9
cjoy

Display Suiteは、ノードのレンダリングを実際にハイジャックして、デフォルトの前処理機能が使用されないポイントまで実行します。

モジュールには、 ds.api.php に記載されている独自の前処理関数のセットが付属しています。

この場合、hook_ds_pre_render_alter()の代わりにhook_preprocess_node()を使用して、完全なレンダー配列を介して出力を変更できます。また、$entityオブジェクトはすべての値で使用できます。

13
cjoy