Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将自定义ul注入菜单_Php_Html_Css_Wordpress_Menubar - Fatal编程技术网

Php 将自定义ul注入菜单

Php 将自定义ul注入菜单,php,html,css,wordpress,menubar,Php,Html,Css,Wordpress,Menubar,因此,我使用一个很酷的小功能来呈现我菜单中的搜索栏。在这里查看: function add_search_to_wp_menu ( $items, $args ) { if( 'main-menu' === $args -> theme_location ) { $items .= '<li class="menu-item menu-item-search">'; $items .= '<form method="get" class="menu-sea

因此,我使用一个很酷的小功能来呈现我菜单中的搜索栏。在这里查看:

    function add_search_to_wp_menu ( $items, $args ) {
    if( 'main-menu' === $args -> theme_location ) {
$items .= '<li class="menu-item menu-item-search">';
$items .= '<form method="get" class="menu-search-form" action="' . get_bloginfo('home') . '/"><p><input class="text_input" type="text" value="Enter Text &amp; Click to Search" name="s" id="s" onfocus="if (this.value == \'Enter Text &amp; Click to Search\') {this.value = \'\';}" onblur="if (this.value == \'\') {this.value = \'Enter Text &amp; Click to Search\';}" /><input type="submit" class="my-wp-search" id="searchsubmit" value="search" /></p></form>';
$items .= '</li>';
    }
return $items;
}
add_filter('wp_nav_menu_items','add_search_to_wp_menu',10,2);
功能将搜索添加到菜单($items,$args){
如果('main menu'==$args->theme\u位置){
$items.='
  • ; $items.='

    '; $items.='
  • '; } 退回$items; } 添加过滤器(“工作包导航菜单项”,“将搜索添加到工作包菜单”,10,2);
    我没有成功,但它成功了

    所以唯一的问题是它出现在最高层:

    <ul>
    <li>Normal Item</li>
    <li>OH LOOOK THE SEATCHBAR APPEARS HERE</li>
    </ul>
    
    • 正常项目
    • 哦,好了,这里出现了座位
    问题是,我需要它在菜单中再显示几步,即-此处:

    <ul>
     <li>
       Normal Item
        <ul>
          <li>
               I want THE SEARCH to appear here
          </li>
       <ul>
     </li>
    </ul>
    
    • 正常项目
      • 我希望搜索显示在这里
    不仅如此,我希望它出现在菜单中最后一个
    • 之后

      也就是说,如果我有一个包含3个普通项目和它们自己的子项目的列表,一旦注入,它就会像这样:

         <ul>
           <li>
             Normal Item1
           </li>
           <li>
             Normal Item2
           </li>
           <li>
             Normal Item3
           </li>
           <li>
             Normal Item
              <ul>
                <li>
                 I want THE SEARCH to appear here
                </li>
             <ul>
           </li>
          </ul>
      
      • 正常项目1
      • 正常项目2
      • 正常项目3
      • 正常项目
        • 我希望搜索显示在这里

      希望这是有道理的。谢谢你的帮助

      又快又脏的黑客。它会(也许,需要调整)工作,但你必须摆弄代码和抄本(答案底部的参考),否则你就不会再做了

      function add_search_to_wp_menu_item ( $items, $args ) {
          $search_form = '<ul><li class="menu-item menu-item-search">'
                       . '<form method="get......./form>' // FILL IT WITH YOUR HTML
                       .'</li></ul></li>';
          if( 'main-menu' === $args -> theme_location ) {
              $items = preg_replace('/<\/li>\s*$/',$search_form,trim($items));
          }
          return $items;
      }
      add_filter('wp_nav_menu_items','add_search_to_wp_menu_item',10,2);
      
      函数将搜索添加到菜单项($items,$args){
      $search\u form='
      • '
        “太棒了!它工作得很好。现在我对PHP不是很了解,我正在努力:'/\s*$/'我知道你在搜索
      • 我该如何搜索
    • ?@BenPotter
      '/\s*$/'
      是一种语言,它不仅限于PHP,因为它有几种语言。准确地说,它本身就是一种语言……这条评论开始变得很有趣。”太小了一点。我将编辑答案instead@BenPotter
      /\s*/
      /\s*/\s*$
      仅选择字符串末尾的一个