【问题标题】:Adding custom menu item to WordPress menu将自定义菜单项添加到 WordPress 菜单
【发布时间】:2012-10-24 02:39:53
【问题描述】:

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

//将我的个人资料菜单项动态添加到成员菜单(生成 基于当前登录用户的用户名)

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

function add_profilelink_in_menu($items, $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 菜单类(例如“current-menu-item”)不会应用于该项目。有没有办法让我控制这个菜单项添加到的位置(例如:在前两项之后添加这个项目?)

我怎样才能让 WordPress 将此动态生成的菜单项视为常规菜单项并让它添加它添加其他菜单项的所有类(通过 WordPress 菜单功能创建)?

感谢您的帮助。

【问题讨论】:

  • 你想试试jquery吗?

标签: php wordpress


【解决方案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函数

【讨论】:

  • 非常感谢!这太棒了!
  • 这太糟糕了。这里没有理由使用 JavaScript。
  • @GeorgeReith 至少给我们留下一个更好的解决方案:)
【解决方案2】:

您是否为此检查了主题->菜单中的 Wordpress 菜单选项?您可以从那里轻松添加菜单,也可以从那里设置自定义菜单。希望对您有所帮助。

【讨论】:

  • 谢谢,但问题是菜单项的链接是动态生成的,因此 wordpress 主题->菜单不允许该功能。
  • 是的 wordpress 菜单是动态生成的,但您可以在那里配置顺序以及使用自定义 url 选项表单管理创建自定义菜单。
猜你喜欢
  • 1970-01-01
  • 2018-07-15
  • 2011-09-21
  • 1970-01-01
  • 2012-09-11
  • 2013-12-11
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
相关资源
最近更新 更多