我有一个WordPress菜单,其中包含一些我通过标准(拖放) WordPress管理菜单功能添加的菜单项。最近,我不得不向菜单中添加另一项,以生成动态href链接。我使用functions.php文件中的以下代码实现了这一点:
//动态地将我的配置文件菜单项添加到成员菜单(根据当前登录的用户生成用户名) Add_filter(‘wp_nav_菜单项’,'add_profilelink_in_menu',10,2); 函数add_profilelink_in_menu( $items,$args ){ 如果( $args->theme_location ==‘备用’){全局$current_user;//将用户id转换为用户名$user_info = get_userdata($current_ user ->ID);$items .=‘Profile ';}返回$items;}
我的问题是,这个菜单项被添加到菜单的末尾,而常规的WordPress菜单项(如“当前菜单项”)没有被应用到这个项目中。是否有一种方法可以控制添加此菜单项的位置(例如:在前两项之后添加此项?)
如何让WordPress将这个动态生成的菜单项视为一个常规菜单项,并让它添加它添加其他菜单项的所有类(通过WordPress菜单功能创建)?
谢谢你的帮助。
发布于 2012-11-10 03:59:17
以下是您可以使用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函数。
发布于 2012-11-05 04:59:37
您检查过主题->菜单中的Wordpress菜单选项吗?您可以轻松地从那里添加菜单,也可以从there.Hope设置自定义菜单,这将对您有所帮助。
https://stackoverflow.com/questions/13212154
复制相似问题