私はhook_menu()でメニューを構築しています。
この配列を作成するときに、タイトルを指定します。これは、呼び出すページに渡され、ページタイトルになります。メニュー項目の表示名でもあります。
_$items['somewhere/something'] = array(
'title' => 'Something',
'description' => 'something else',
);
_
これにより、「Something」というメニューリンクが生成され、ページタイトルは同じになります。メニュー項目の名前を1つにする方法はありますが、ページに別のタイトルを渡しますか?
実際のdrupal_set_title()
関数でhook_page()
を使用できることはわかっていますが、この場合、追加のデータベースプルを実行してこれを実行する必要があるため、実行しません。それ。
hook_menu() でそれを行う方法はありません。
最も簡単な方法は drupal_set_title() を使用して提案したものであり、最も効率的な方法は上記で提案されたdobeermanです:使用- phptemplate_preprocess_page() そして$ varsを適宜変更します。
正直なところ、あなたが言及した追加のdb呼び出しがある場合でも、私はdrupal_set_title()を使用します(未確認)。これはごくわずかな最適化であり、パフォーマンスが重要な場合は、キャッシングメカニズム(ワニス、ブーストなど)を用意しておく必要があります。この追加の呼び出しによって違いが生じることはありません。
ページに別のタイトル(_<title>
_タグで使用されるタイトル)を設定するには、2つの方法があります。
MODULE_preprocess_page()
を実装し、それを使用して_$variables['head_title']
_の値を変更します。 template_preprocess_page() のドキュメントページでは、_$variables
_配列で使用できる値を報告しています。drupal_set_title() を使用すると、ページタイトルやタイトルバーに表示されるタイトルだけを設定するわけではありません。ドキュメントで報告されているように、両方を設定します。
現在のページのタイトルを設定して、ページとタイトルバーに表示します。
パラメーター
$ title
ページタイトルに割り当てるオプションの文字列値。またはNULL(デフォルト)に設定されている場合、現在のタイトルは変更されません。戻り値
現在のページの更新されたタイトル。