回答:
タグによると、D7ソリューションを探しています。Drupalの7 page.tpl.phpはもう$のsearch_box変数を持っていません。ただし、template.phpのプリプロセス関数に追加できます。
<?php
/*
* Preprocess page.tpl.php to inject the $search_box variable back into D7.
*/
function MYTHEME_preprocess_page(&$variables){
$search_box = drupal_render(drupal_get_form('search_form'));
$variables['search_box'] = $search_box;
}
次に、page.tpl.phpで変数を印刷するだけです。
<?php print $search_box; ?>
module_invokeを使用することもできますが、テンプレートファイルにphpロジックを含めるべきではありません。
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
page.tpl.phpファイルで$search_box
使用可能な変数を使用できます。
ブロックシステムを使用して、検索フォームブロックをページに追加することもできます。
管理者>構造>ブロック:検索フォーム
たとえば、ナビゲーションメニューに配置するには、ブロックを領域に配置します
「ナビゲーション」
そして、CSSに合わせます。
たとえば、ナビゲーションメニューの右側に配置するには:
#navigation #block-search-form{
position: absolute;
right: 10px;
top: 0;
}