2012-02-26 8 views
0

私は手動でメニューを作成し、検索フォームを含めるようにしています。Wordpressのget_search_form()は、パラメータを考慮に入れていません。

これはWordpressの文書「簡単なメニューリストを作成する」http://codex.wordpress.org/Function_Reference/wp_get_nav_menu_itemsにあります。

メニューを完成させる前に追加の<li>要素を追加して検索フォームを追加しました。

  // Get the nav menu based on $menu_name (same as 'theme_location' or 'menu' arg to wp_nav_menu) 
      // This code based on wp_nav_menu's code to get Menu ID from menu slug 

      $menu_name = 'main-menu'; 

      if (($locations = get_nav_menu_locations()) && isset($locations[ $menu_name ])) { 

       $menu = wp_get_nav_menu_object($locations[ $menu_name ]); 

       $menu_items = wp_get_nav_menu_items($menu->term_id); 

       $menu_list = '<ul id="menu-' . $menu_name . '">'; 

       foreach ((array) $menu_items as $key => $menu_item) { 
        $title = $menu_item->title; 
        $url = $menu_item->url; 
        $menu_list .= '<li><a href="' . $url . '">' . $title . '</a></li>'; 
       } 
       $menu_list .= '<li>' . get_search_form(false) . '</li>'; 
       $menu_list .= '</ul>'; 
      } else { 
       $menu_list = '<ul><li>No Menu</li></ul>'; 
      } 
      echo $menu_list; 

問題が出力されます。

<のdivクラス= "mainnav" ロール= "ナビゲーション" >

<form role="search" method="get" id="searchform" action="/"> 
    <input type="text" value="" name="s" id="s" size="40" placeholder="Search" alt="Site Search"> 
    <input type="submit" id="searchsubmit" value="Search"> 
</form> 
<ul id="menu-main-menu"> 
    <li><a href="#">Home</a></li> 
    <li><a href="#">Sample Page</a></li> 
    <li></li> 
</ul> 

</divの>

私はエコー指定していても検索がメニューの前に印刷された理由を誰かが私に言うことができます=偽ですか?

答えて

1

これは、エコーからget_search_form()を取り出し、それを独自のPHPブロックで印刷することで解決しました。

私は、最初の場所でエコーされていたという声明をエコーし​​ていたという事実が、この面白い振る舞いを引き起こしたと感じています。独自のPHPブロックでそれを置くとエコーではないが、ちょうどそれが直接問題を修正呼び出す:

<?php get_search_form(); ?> 

は何が起こったのか上の任意の考え、助言や指導を歓迎するだろうか?

関連する問題