在wp_NAV_MENU前后添加动态ID

时间:2014-06-18 作者:user1841035

我有这样的菜单:

<ul>
        <li>
            <div class="buttons-4" title="some_title">
                <a href="[some_url]">[something]</a>
            </div>
        </li>
        <li>
            <div class="buttons-5" title="some_title">
                <a href="[some_url]">[something]</a>
            </div>
        </li>
    </ul>
我试过这个:

$args = array(
    \'theme_location\' => \'my-theme-location\',
    \'menu\' => \'\',
    \'container\' => \'\',
    \'container_id\' => \'\',
    \'menu_class\' => \'\',
    \'menu_id\' => \'\',
    \'echo\' => true,
    \'before\' => \'<div class="buttons-%1$s" title="some_title">\',
    \'after\' => \'</div>\',
    \'link_before\' => \'\',
    \'link_after\' => \'\'
);

wp_nav_menu( $args );
我需要菜单项中的每个元素都可以动态地具有类[或者ID也可以],就像我的示例一样。如何动态获取我的buttons类?对不起,我的英语不好。

2 个回复
最合适的回答,由SO网友:Nilambar Sharma 整理而成

尝试以下操作:

function custom_walker_nav_menu_start_el($item_output, $item, $depth, $args){
  $output = \'<div class="buttons-\'.$item->ID.\'" title="some_title">\';
  $output .= $item_output;
  $output .= \'</div>\';
  return $output;
}
add_filter( \'walker_nav_menu_start_el\', \'custom_walker_nav_menu_start_el\' , 10, 4 );
这使用walker_nav_menu_start_el 筛选以在链接项目之前和之后添加自定义内容。ID 附加到buttons-. 如果您只需要为特定菜单进行此自定义,则可以检查$args 根据您的要求。

SO网友:user1841035

感谢尼兰巴。它起作用了!。这是我的最后一个代码:

 $menu_middle_left = array(
            \'theme_location\' => \'middle-left\',
            \'menu\' => \'\',
            \'container\' => \'\',
            \'container_class\' => \'\',
            \'container_id\' => \'\',
            \'menu_class\' => \'\',
            \'menu_id\' => \'\',
            \'echo\' => true,
            \'fallback_cb\' => \'wp_page_menu\',
            \'link_before\' => \'\',
            \'link_after\' => \'\',
            \'walker\' => new Walker_Nav_Menu()
        );

        wp_nav_menu($menu_middle_left);
我把你的代码放在我的函数中。php:

function custom_walker_nav_menu_start_el($item_output, $item, $depth, $args){
  $output = \'<div class="buttons-\'.$item->ID.\'" title="some_title">\';
  $output .= $item_output;
  $output .= \'</div>\';
  return $output;
}
add_filter( \'walker_nav_menu_start_el\', \'custom_walker_nav_menu_start_el\' , 10, 4 );

结束

相关推荐

How to add taxonomy in menus?

书籍(自定义帖子类型)小说(税)科学(税)历史(税)--书籍体裁(税务)小说(术语)科学(学期)历史(学期)以下哪一项是做这件事的“好方法”?对于前一个(这是我目前在管理菜单中的功能,我为每个功能都提供了“register\\u taxonomy”功能),我无法选择要在菜单中显示的“Tax”。而对于后者,我可以将它们添加到菜单中,只需要一个“register\\u taxonomy”函数。