2012-11-03 238 views
5

我有一个WordPress菜单,通过标准(拖放)WordPress管理菜单功能添加了一些菜单项。最近我不得不添加另一个项目到生成动态href链接的菜单中。我实现了我的functions.php文件使用下面的代码:将自定义菜单项添加到WordPress菜单

// dynmacially加入我的个人资料菜单项成员菜单(生成 用户名基于当前用户登录)

的add_filter( 'wp_nav_menu_items','add_profilelink_in_menu',10,2);

功能add_profilelink_in_menu($项目的$ args){

if($args->theme_location == 'secondary') { 

global $current_user;    
     //converts user id to username   
     $user_info = get_userdata($current_user->ID); 

$items .='<li id="menu-item-2091" class="menu-item menu-item-2091"> 
<a href="https://www.mysite.com/members/' . $user_info->user_login .'">Profile</a> 
</li>'; 

    } 
    return $items; 

}

我的问题是,这个菜单项添加到菜单的末尾和定期的WordPress菜单类,作为'当前菜单项'不适用于此项目。有没有办法让我控制这个菜单项添加到的位置(例如:在前两项之后添加这个项目?)

以及如何让WordPress将这个动态生成的菜单项作为一个普通的菜单项,并添加所有的类,它添加了其他菜单项(通过WordPress菜单功能创建)?

感谢您的任何帮助。

+0

你想尝试的jQuery? – loQ

+0

是的,我请 – Dmitri

回答

1

这里,你可以立足的使用jQuery

//suppose your menu is this 
    <ul id="secondary_nav"> 
    <li id="li_unique_id_1"><a href="">menu 1</a></li> 
    <li id="li_unique_id_2"><a href="">menu 2</a></li> 
    <li id="li_unique_id_4"><a href="">menu 4</a></li> 
</ul> 

//the jquery workaround 
//place this in your footer 
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> 
<script type='text/javascript'> 
$(function(){ 
    <?php 
    global $current_user;    
    //converts user id to username   
    $user_info = get_userdata($current_user->ID); 
    ?> 
    $("<li id='menu-item-2091' class='menu-item menu-item-209'><a href='https://www.mysite.com/members/<?php echo $user_info->user_login; ?>'>Profile</a></li>").insertAfter("#secondary_nav #li_unique_id_2");  
}); 
</script> 

的逻辑也可以使用insertBefore功能

+0

非常感谢!这太棒了! – Dmitri

+0

jquery很棒! – loQ

+0

这太可怕了。这里没有理由使用JavaScript。 –

0

您是否在主题 - >菜单中检查了Wordpress菜单选项?你可以轻松地从那里添加菜单,你也可以从那里设置自定义菜单。希望它会帮助你。

+0

谢谢我,但问题是菜单项的链接是动态生成的,所以WordPress的主题 - >菜单不允许该功能。 – Dmitri

+0

是的wordpress菜单是动态生成的,但你可以配置那里的顺序以及创建与自定义url选项形式管理端自定义菜单。 –

相关问题