Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
在wordpress中将搜索栏添加到导航菜单_Wordpress_Search_Nav - Fatal编程技术网

在wordpress中将搜索栏添加到导航菜单

在wordpress中将搜索栏添加到导航菜单,wordpress,search,nav,Wordpress,Search,Nav,(这是wordpress网站) 这是我的网站,我试图添加一个搜索栏到导航菜单,并有它的权利。有什么想法吗 我还没有找到做这件事的方法。我希望论坛的人能帮我 Function.php代码: 函数添加最后一个导航项($items,$args){ 如果('header\u menu'==$args->menu\u id){ $homelink=获取搜索表单(false); $items.='“.$homelink.”; 退回$items; } 退回$items; } 添加过滤器(“工作包导航菜单项”,

(这是wordpress网站)

这是我的网站,我试图添加一个搜索栏到导航菜单,并有它的权利。有什么想法吗

我还没有找到做这件事的方法。我希望论坛的人能帮我

Function.php代码:
函数添加最后一个导航项($items,$args){
如果('header\u menu'==$args->menu\u id){
$homelink=获取搜索表单(false);
$items.='
  • “.$homelink.
  • ”; 退回$items; } 退回$items; } 添加过滤器(“工作包导航菜单项”,“添加最后导航项”,10,2);

    此处
    get\u search\u form()
    是获取搜索框的函数。

    @rockmandew是正确的-如果不将get\u search\u form()设置为false,此代码将无法工作。但是,即使在做了这样的改变之后,这个函数也不会起作用

    我最初将搜索表单添加到我的导航菜单中,方法是将其添加到我的函数文件中:

    /**
     * Add search box to nav menu
     */
    function wpgood_nav_search( $items, $args ) {
        $items .= '<li>' . get_search_form( false ) . '</li>';
        return $items;
    }
    add_filter( 'wp_nav_menu_items','wpgood_nav_search', 10, 2 );
    
    /**
    *将搜索框添加到导航菜单
    */
    函数wpgood\u nav\u search($items,$args){
    $items.='
  • '。获取搜索表单(false)。'
  • ; 退回$items; } 添加过滤器('wp_导航菜单项','wpgood_导航搜索',10,2);
    如果您有一个菜单或希望在所有菜单中添加搜索框,这是一个很好的解决方案。在我的例子中,我只想在主菜单中添加一个搜索框。为了实现这一点,我采取了以下措施:

    /**
     * Add search box to primary menu
     */
    function wpgood_nav_search($items, $args) {
        // If this isn't the primary menu, do nothing
        if( !($args->theme_location == 'primary') ) 
        return $items;
        // Otherwise, add search form
        return $items . '<li>' . get_search_form(false) . '</li>';
    }
    add_filter('wp_nav_menu_items', 'wpgood_nav_search', 10, 2);
    
    /**
    *将搜索框添加到主菜单
    */
    函数wpgood\u nav\u search($items,$args){
    //如果这不是主菜单,请不要执行任何操作
    如果(!($args->theme_location=='primary'))
    退回$items;
    //否则,请添加搜索表单
    返回$items。“
  • ”。获取搜索表单(false)。“
  • ”; } 添加过滤器(“wp\u导航菜单项”、“wpgood\u导航搜索”,10,2);

    值得注意的是,我的主导航在我的函数文件中被命名为“primary”。这可能因主题而异,因此需要相应更改,即“main”或初始解决方案中的“header\u menu”。

    这两个答案都让我走上了正确的道路,但
    args
    的值似乎取决于Wordpress版本(我运行5.5)或主题(我正在使用)或其他内容(这里不是超级WP专家,只是开始深入研究此类WP主题)

    如果上述方法对您不起作用,那么将
    args
    转储出来,并相应地修改代码

    我的
    args
    值:

    stdClass::__set_state(array( 'menu' => WP_Term::__set_state(array( 'term_id' => 7, 'name' => 'Menu 1', 'slug' => 'menu-1', 'term_group' => 0, 'term_taxonomy_id' => 7, 'taxonomy' => 'nav_menu', 'description' => '', 'parent' => 0, 'count' => 5, 'filter' => 'raw', )), 'container' => 'div', 'container_class' => '', 'container_id' => '', 'container_aria_label' => '', 'menu_class' => 'menu', 'menu_id' => 'primary-menu', 'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '
    %3$s
    ', 'item_spacing' => 'preserve', 'depth' => 0, 'walker' => '', 'theme_location' => 'menu-1', ))
    
    所以我去检查分类法(也清理了一些代码):

    函数添加最后一个导航项($items,$args){
    //只是为了向您展示如何将其转储-在ofcs之后删除该行
    var_出口(args);
    //如果这是您要查找的菜单,请添加搜索表单
    如果(isset($args->menu->taxonomy)&&&&$args->menu->taxonomy==='nav_menu'){
    $items.='
  • '。获取搜索表单(false)。'
  • ; } 退回$items; } 添加过滤器(“工作包导航菜单项”,“添加最后导航项”,10,2);
    分享您尝试过的内容。如果您遇到了某些具体问题,我们将帮助您。请参考这些链接,询问适当的问题()、()和()我不知道怎么做,我想从这里得到一些帮助。我正在使用一个插件,所以我要做的就是设计它的样式。你也可以使用这个插件来实现它。我应该将它添加到function.php文件中吗?是的,你可以将它添加到function.php文件中。你欢迎,批准有效的响应。这对其他人很有帮助。这实际上不应该正常工作,你需要为了生成正确的标记,将get_search_form()设置为false。2017年,我花了整整一个小时才找到它。
    stdClass::__set_state(array( 'menu' => WP_Term::__set_state(array( 'term_id' => 7, 'name' => 'Menu 1', 'slug' => 'menu-1', 'term_group' => 0, 'term_taxonomy_id' => 7, 'taxonomy' => 'nav_menu', 'description' => '', 'parent' => 0, 'count' => 5, 'filter' => 'raw', )), 'container' => 'div', 'container_class' => '', 'container_id' => '', 'container_aria_label' => '', 'menu_class' => 'menu', 'menu_id' => 'primary-menu', 'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '
    %3$s
    ', 'item_spacing' => 'preserve', 'depth' => 0, 'walker' => '', 'theme_location' => 'menu-1', ))
    
    function add_last_nav_item($items, $args) {
        // just to show you how to dump it out - remove that line afterwards ofcs
        var_export($args);
    
        // If this is the menu you are looking for, add search form
        if (isset($args->menu->taxonomy) && $args->menu->taxonomy === 'nav_menu') {
            $items .= '<li>' . get_search_form(false) . '</li>';
        }
        return $items;
    }
    add_filter( 'wp_nav_menu_items', 'add_last_nav_item', 10, 2);