hook_menu()アイテムのタイトルをページタイトルとは異なるものにすることはできますか?
質問
hook_menu()でメニューを構築しています。
このための配列を構築すると、タイトルを指定します。タイトルを指定し、電話をかけるページに渡され、ページタイトルになります。また、メニュー項目の表示名でもあります。
$items['somewhere/something'] = array(
'title' => 'Something',
'description' => 'something else',
);
これにより、「何か」と呼ばれるメニューリンクが生成され、ページタイトルは同じです。メニュー項目の名前を1つにする方法はありますか?
私は使えることを知っています drupal_set_title()
実際に hook_page()
機能しますが、この場合にそれを実現するために追加のデータベースプルを実行する必要があります。
解決
いいえ、それをする方法はありません hook_menu().
最も簡単な方法は、使用して提案したものです drupal_set_title() そして、最も効率的なのは何ですか ドバーマン 上記の提案:使用 phptemplate_preprocess_page() それに応じて$ varsを変更します。
正直なところ、私はあなたが言及した追加のdbコールがある場合でも、drupal_set_title()を使用します(未確認)。これは小さな最適化であり、パフォーマンスがあなたにとって重要である場合、キャッシュメカニズム(ワニス、ブーストなど)があり、この追加の呼び出しは違いを生みません!
他のヒント
ページに別のタイトルを設定するには(で使用されているものは <title>
タグ)、2つの可能性があります。
- モジュールで、実装してください
MODULE_preprocess_page()
そして、それを使用しての値を変更します$variables['head_title']
. 。のドキュメントページ template_preprocess_page() どの値が利用可能かを報告します$variables
配列。 - インストールします ページタイトル ページのタイトルセットを変更できるモジュール。 PHPスニペットを実行してページタイトルを設定することもできます。また、使用します。 トークン.
使用 drupal_set_title(), 、タイトルバーにページタイトルまたはタイトルを表示するだけではありません。ドキュメントで報告されているように、両方を設定します。
現在のページのタイトルを設定し、ページとタイトルバーに表示します。
パラメーター
$タイトル
ページタイトルに割り当てるオプションの文字列値。または、null(デフォルト)に設定されている場合、現在のタイトルは変更されていません。返品値
現在のページの更新されたタイトル。