将一些定制的html代码添加到wp_NAV_MENU函数

时间:2013-07-14 作者:Jonathan Beech

我想在WordPress中的wp\\u nav\\u菜单功能中实现一些自定义html代码,以便我可以将引导模式框添加到导航菜单链接,但我不确定如何进行。岗位https://stackoverflow.com/questions/12250866/how-to-add-custom-html-to-wp-nav-menu 通过扩展walker类,以某种方式解释如何做到这一点。

我的目标是在walker类的帮助下创建以下标记,以在最后创建自定义html代码。

<div class="menu-primary-navigation-container">
    <ul id="navigation" class="clearfix">
        <li id="menu-item-275" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-273 current_page_item menu-item-275">
            <a href="http://sandpit.jonathanbeech.co.uk/">Home</a>
        </li>
        <li id="menu-item-17" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17">
            <a href="http://sandpit.jonathanbeech.co.uk/about/">About</a>
        </li>
        <li id="menu-item-191" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-191">
            <a href="http://sandpit.jonathanbeech.co.uk/portfolio-two/">Portfolio</a>
        </li>
        <li id="menu-item-269" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-269">
            <a href="http://sandpit.jonathanbeech.co.uk/articles/">Articles</a>
        </li>
        <li>
            <a href="#myModal" role="button" data-toggle="modal">Contact</a>
        </li>
    </ul>
</div>
我很难理解如何修改start\\u el和end\\u el代码来实现最后一个列表项中的代码,因为我的php技能不好。

有什么建议吗?

class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
    function start_el ( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
        // Copy all the start_el code from source, and modify
    }

    function end_el( &$output, $item, $depth = 0, $args = array() ) {
        // Copy all the end_el code from source, and modify
    }
}

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

要添加最后一个列表项,您不需要自定义Walker。There is a hook that will allow you to tack that on.

function add_last_nav_item($items) {
  return $items .= \'<li><a href="#myModal" role="button" data-toggle="modal">Contact</a></li>\';
}
add_filter(\'wp_nav_menu_items\',\'add_last_nav_item\');
不会的start_elend_el 无论如何都需要编辑。这些将生成单个列表项。这里不是添加其他项目的地方。我想你可能需要Walker_Nav_Menu\'s父级Walker 类来获得一个可以添加新项目的位置,但仅仅添加项目是不值得的。

结束

相关推荐

Custom menus not showing

作为我上一次关于菜单的未解决查询的后续,这个问题已经进一步扩展。我的菜单没有打印代码中的任何地方。我正在注册菜单功能。php:add_action( \'after_setup_theme\', \'your_newtheme_setup\' ); if ( ! function_exists( \'your_newtheme_setup\' ) ) : function your_newtheme_setup() { if (