web-dev-qa-db-ja.com

カスタムメニューをpage.tplに含める方法

カスタムメニューを直接page.tpl.phpにコーディングします。デフォルトのテーマは

<?php if ($main_menu): ?>
  <div id="main-menu" class="navigation">
    <?php print theme('links__system_main_menu', array(
      'links' => $main_menu,
      'attributes' => array(
        'id' => 'main-menu-links',
        'class' => array('links', 'clearfix'),
      ),
      'heading' => array(
        'text' => t('Main menu'),
        'level' => 'h2',
        'class' => array('element-invisible'),
      ),
    )); ?>
  </div> <!-- /#main-menu -->
<?php endif; ?>

Drupal 7で、「フッターメニュー」という新しいメニューを作成しました。$ main_menuがデフォルトのテーマでコーディングされるのと同じ方法で、テーマにそれをどのようにコーディングしますか?

5
tommyf

これを試して

<?php
 $menu = menu_navigation_links('menu-your-custom-menu-name');
 print theme('links__menu_your_custom_menu_name', array('links' => $menu));
?>

Template.phpに追加することもできます

function THEME_preprocess_page(&$vars) {

$menu = menu_navigation_links('menu-your-custom-menu-name');

$vars['custom_menu'] = theme('links__menu_your_custom_menu_name', array('links' => $menu));

}

変数$ custom_menuはページtplで使用できます

5
Sibiraj PR

私はベローコードを使用しています、それは私のために働いています。

$ main_menu = menu_navigation_links( 'menu-main-page'); print($ main_menu);

0
muthuraja

_template.php_のhook_theme_tree()でメニューをオーバーライドできます:

_function THEME_menu_tree__MENUNAME($variables) {
  $menuTree = menu_build_tree('MENUNAME');

  foreach ($menuTree as $item) {

  }
}
_

メニューブロックを作成するか、メニューを直接_page.tpl_

0

まあ、上記のDrupal 7でうまくいきませんでしたが、コードの下では、

    $search_menu_name = "menu-search-box-menu";

   print theme('links', array('links' => menu_navigation_links($search_menu_name), 'attributes' => array('id' => $search_menu_name, 'class'=> array('links', 'inline'))));

上記のコードはこのようなもので、「menu-search-box-menu」は私のカスタムメニュー名/ IDです。その特定のメニュー編集リンクでそれを見つけることができます。

楽しい。 :)

0
Umesh Patil

これは私を怒らせています。

これまでで最も簡単な方法はこれです...

カスタムメニュー名が「カスタムメニュー」であるpage.tpl.php内

<?php

print drupal_render(menu_tree('menu-custom-menu'));

?>
0
Collins