質問: $node; watchdog("mytheme", 'items %items', array('%items' => print_r($variables['node'], true))); } } ログにメッセージ出力が表示されましたが、更新されたタイトルがサイトに表示されません。
回答: モジュール(またはテーマ)から作成されたhook_preprocess_node()のすべての実装は、次のコードを含む template_preprocess_node() の後に実行されます。_ $variables['node_url'] = url($uri['path'], $uri['options']); $variables['title'] = check_plain($node->title); $variables['page'] = $variables['view_mode'] == 'full' && node_is_page($node); _template_preprocess_node()はnodeモジュールから実行される前処理関数であり、theme_node()を定義するモジュールです。テンプレートファイルは、ページタイトルに_$title_を使用します。_ <?php print render($title_prefix); ?> <?php if (!$page): ?> <h2<?php print $title_attributes; ?>> <a href="<?php print $node_url; ?>"><?php print $title; ?></a> </h2> <?php endif; ?> <?php print render($title_suffix); ?> _タイトルの値を変更する場合は、プリプロセス関数の_$title_の値を変更する必要があります。プリプロセス関数の実行順序は、 theme() のドキュメントで説明されています。そのドキュメントでは、「hook」は前処理関数のタイプのプレースホルダーです。 「ノード」、「html」、「ページ」。テーマに使用されるレンダリングエンジン、モジュール、および現在設定されているテーマの間で、テーマから実装される前処理関数が最後に呼び出されます。これは、タイトルを変更する別のモジュールがあり、テーマの1つのセットを使用する場合に役立ちます。私が報告したことは、drupal 6.にも当てはまります。